HP Integrated Management Log Viewer location
The HP Integrated Management Log Viewer is usually installed in this locatoin:
“C:\Program Files\Compaq\Cpqimlv\cpqimlv.exe”
The HP Integrated Management Log Viewer is usually installed in this locatoin:
“C:\Program Files\Compaq\Cpqimlv\cpqimlv.exe”
In order for this script to work you will need to register on the HP Developer portal and gain access to the HP Warranty API. Once registered you will be given your own HP API Key and Secret. For more information on how to do this, please see here:
https://developers.hp.com/hp-client-management/doc/warranty-api-keys-0
The first part of the script will query the local computer or laptop to obtain the Product Number and Serial Number of the PC.
It will then Query the HP Warranty API using your API Key for the following information:
Product Model
Warranty Status
Warranty Start Date
Warranty End Date
Warranty Service Level
The Second part of the Script will then email this information to an email address of your choice. You will have to specify your Email Settings within the Script.
Note – This will NOT work for HPE Servers as they have a different HPE API.
You will need to update the following parts of the Script with your relevant information:
$APIKey
$APISecret
$FromAddress
$ToAddress
$SMTPServer
#API Information - Configuration Required
$URI = "https://css.api.hp.com/oauth/v1/token"
$APIKey = "Insert API Key"
$APISecret = "Insert API Secret"
#Get PC Name and Domain Name - Some Configuration Required
$PCName = $Env:COMPUTERNAME
$Domain = $env:USERDNSDOMAIN
$FromAddress = "Insert Email Address"
$ToAddress = "Insert Email Address"
$Subject = "HP Warranty Information for $PCName.$Domain"
$SMTPServer = "Insert Email Server"
#Starting the Script - No further Configurtion Required
#Creating API String
$APIString = "apiKey=$APIKey&apiSecret=$APISecret&grantType=client_credentials&scope=warranty"
Write-Host "Checking HP Warranty of local PC" -ForegroundColor Green
$Product = Get-WmiObject win32_computersystem
$Product = $Product.SystemSKUNumber
Write-Host "HP Product Number is $Product" -ForegroundColor Yellow
$Serial = Get-WmiObject Win32_BIOS
$Serial = $Serial.SerialNumber
Write-Host "HP Product Number is $Serial" -ForegroundColor Yellow
#Check Against HP API
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$authKey = Invoke-WebRequest -Method Post -uri $URI -Body $APIString
$ContentOrigial = $authKey.Content
$content = $ContentOrigial.Replace('<?xml version="1.0" encoding="UTF-8"?><Root><access_token>', "")
$Content = $Content.Replace('</access_token><expires_in>3599</expires_in><scope>warranty</scope></Root>', "")
$headers = @{}
$headers.add("Authorization","Bearer $Content")
$headers.add("accept","application/json")
$headers.add("content-type","application/json")
$body = "[{ `"sn`": `"$serial`", `"pn`": `"$Product`" }]"
$results = Invoke-WebRequest -Method Post -Uri "https://css.api.hp.com/productWarranty/v1/queries" -Headers $headers -Body $body
$results.Content | ConvertFrom-Json
$emailbody = $results.Content | ConvertFrom-Json | Out-String
Write-Host "Emailing Results" -ForegroundColor Yellow
$email = @{
From = "$FromAddress"
To = "$ToAddress"
Subject = "$Subject"
SMTPServer = "$SMTPServer"
Body = $emailbody
}
send-mailmessage @email
Write-Host "Script Complete - Email sent to $ToAddress" -ForegroundColor Green