Get HP Product Number via Powershell

I have put together a robust HP Warrant Lookup PowerShell script. However, I cannot figure out how to get a HP system's product number in an automated process. So...

How can I get HP product number (not the serial number) via PowerShell? Although I would like to do with only built-in out-of-the-box Windows and PowerShell commands, I am open to other ideas. In the end, the ultimate goal is retrieve the product number in the most reliable and least invasive way possible (i.e. installing 3rd software).

Troubleshooting

Tried:

Get-WmiObject Win32_ComputerSystem | Select-Object OEMStringArray

Result:

{ABS 70/71 79 7A 7B 7C, CMS v01.4A, HP_Mute_LED_0, www.hp.com}

... But expecting to find XT908UT#ABA


Solution 1:

Here are some methods that work for various computer models.

Method 1 : Registry

The HP product number is in the registry so can be retrieved in PowerShell HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS item SystemSKU.

More information and script can be found in the article :
How to: Find the HP Product Number of all your HP server using powershell.

Method 2 : root\wmi – MS_SystemInformation

Class MS_SystemInformation contains the product number in its member SystemSKU.
(Presumably it gets it from the registry as in the first method.)

For more info see Richard Siddaway's Blog.

Method 3 : Class Win32_BIOS

The following fragment finds the product number for some computer makes. Tested on Dell.

Get-WmiObject Win32_BIOS | Select-Object SerialNumber

The Microsoft reference information is found in the article Win32_BIOS class.

Solution 2:

This is tested on a HP Laptop. I think HP "Product number" is called SystemSKUNumber in win32_computersystem WMI. Tested on my HP laptop.

Get-WmiObject win32_computersystem | Select-Object SystemSKUNumber

Will result in:

SystemSKUNumber
---------------
J9A12EA#ABN