Menu

Powershell – looking up HP warranty information – part 2

13-05-2017 - Powershell, Script

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:

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

menno

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?

Reply
    Jeroen Buren

    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”.

    Reply

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.