Author Posts

May 30, 2018 at 5:58 pm

Hello,

I want to retrieve the warranty dates of my DELL server devices and compare them to the current date, then my powershell script send the result to my CENTREON (less than 90 days Warning, less than 30 days CRITICAL..etc ...)

I found a script "GetDellWarrantyInfo.ps1"
here: https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Script-Get-Dell-d7fd6367

the script works well and I get the information "warranty date" in a variable.

unfortunately I do not know how to process the information I get, I start powershell and I do not understand how to convert my result format date and then make the comparison with the date of the day.

Do you have some tips to bring me to help me in my research?

in advance a thank you to those who can help me.

Best regards

Fred

June 9, 2018 at 2:33 pm

I'm not able to run the code as I don't have a Dell, so I can't see what data you're actually getting back. If you could share some of that, it'd be easier to offer useful suggestions.

Generally, if you're getting dates as a string, you want to convert them to a DateTime:

[DateTime]$datetime = "03/04/2018"

As an example. Get-Date also returns DateTimes:

$Now = Get-Date

And then you can compare using -gt (greater than) and -lt, or other comparison operators. Those all work against dates.

June 11, 2018 at 8:12 am

thank-s for your help 🙂

June 11, 2018 at 8:16 am

the script for

#===========================================================================================

# codes de sortie

# "OK" exit 0
# "WARN" exit 1
# "CRIT" exit 2
# "UNKNOW" exit 3

# version de powershell V3
# https://www.microsoft.com/en-us/download/details.aspx?id=34595

#Build URL
# "gwmi win32_bios | Select –ExpandProperty SerialNumber"
$name = $args[1]

$servicetag = $args[0]
$URL1 = "https://sandbox.api.dell.com/support/assetinfo/v4/getassetwarranty/$ServiceTag"
$URL2 = "?apikey=fe0cae32-xxxxx-49a6-a570-xxxxxae38401"
$URL = $URL1 + $URL2

# Get Data
$Request = Invoke-RestMethod -URI $URL -Method GET -contenttype 'Application/xml'

# Extract Warranty Info
$Warranty=$Request.AssetWarrantyDTO.AssetWarrantyResponse.AssetWarrantyResponse.AssetEntitlementData.AssetEntitlement|where ServiceLevelDescription -NE 'Dell Digitial Delivery'

# Read first entry if available
If ($Warranty -is [Object])
{
$SLA=$Warranty[0].ServiceLevelDescription
$EndDate=$Warranty[0].EndDate
}
else
{
$SLA='Expired'
}
$expiredate = $enddate.Substring(0,10)
$lastdate = (Get-Date)
$date = [System.datetime]$expiredate

$tdiff = New-TimeSpan -Start $lastdate -End $date
$Nb_jour = $tdiff.Days

IF( $Nb_jour -gt "60" )
{
write-host -foregroundcolor green "$name , sous garantie pendant encore $NB_jour jours , service TAG $servicetag" ;
exit 0
}

IF( $Nb_jour -gt "0" )
{
write-host -foregroundcolor green "$name , sous garantie pendant encore $NB_jour jours , service TAG $servicetag" ;
exit 1
}

write-host -foregroundcolor red "$name , hors garantie depuis $NB_jour jours , service TAG $servicetag" ;
exit 2