Powershell – looking up HP warranty information – part 2

Earlier I published a post about retrieving warranty information for HP hardware. However, the end date that is returned by the script might not always be correct!

Let me explain…

What the script does is executing a SOAP request to a website. The outcome of that request is XML data and the script returns three specific parameters:

  • ActiveEntitlement (true or false)
  • OverallEntitlementStartDate
  • OverallEntitlementEndDate

So let’s look at the outcome for a random server:

Based on the returned information warranty ends on 31-08-2017. But is that true? If I enter the same information on the HP support site I get the following data:

It looks like the powershell cmdlet returns the end date of the base warranty. But for this server a seperate support agreement is active and the actual warranty end date is 30-09-2019. So let’s see if this info is available is the returned XML data…

It is! The parameter OverallContractEndDate has the correct warranty end date. Returning this extra info is very easy. Just add one single line of code to the powershell script Get-HPEntWarrantyEntitlement.ps1. Default location is C:\Program Files\WindowsPowerShell\Modules\HPWarranty\2.6.2\Public.

Change this:

[HashTable]$output = @{
'SerialNumber' = $SerialNumber
'ProductNumber' = $ProductNumber
'ActiveEntitlement' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.ActiveWarrantyEntitlement
'OverallEntitlementStartDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyStartDate
'OverallEntitlementEndDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyEndDate
}

To this:

[HashTable]$output = @{
'SerialNumber' = $SerialNumber
'ProductNumber' = $ProductNumber
'ActiveEntitlement' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.ActiveWarrantyEntitlement
'OverallEntitlementStartDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyStartDate
'OverallEntitlementEndDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallWarrantyEndDate
'OverallContractEndDate' = $entitlement.'ISEE-GetOOSEntitlementInfoResponse'.Data.EsReply.CombinedUnitEntitlement.OverallContractEndDate
}

2 thoughts on “Powershell – looking up HP warranty information – part 2”

  1. It works fine
    little question
    when i use Import-Csv c:\import.csv | Get-HPIncWarrantyEntitlement i get the inforation in powershell
    but when i use Import-Csv c:\import.csv | Get-HPEntWarrantyEntitlement | Export-Csv c:\export.csv i get this message in the export.csv

    #TYPE System.Collections.Hashtable
    “IsReadOnly”,”IsFixedSize”,”IsSynchronized”,”Keys”,”Values”,”SyncRoot”,”Count”
    “False”,”False”,”False”,”System.Collections.Hashtable+KeyCollection”,”System.Collections.Hashtable+ValueCollection”,”System.Object”,”5″
    do you know how i can fix this?

    1. Hi Menno,

      The problem is caused by the output itself. It’s a hashtable… To overcome this, there are several options. Search the web for “export.csv returns system.object”.

Leave a Reply

Your email address will not be published. Required fields are marked *