Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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



Get-WmiObject Win32_ComputerSystem | Select-Object OEMStringArray


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

... But expecting to find XT908UT#ABA

share|improve this question
Is the product number you were expecting listed when running either of the following commands? wmic csproduct list /format:list / wmic computersystem list /format:list – and31415 Feb 8 '14 at 15:36
Nope. I am pretty sure it's stored in SMBios, but I don't know a reliable way to retrieve it. – SgtOJ Feb 8 '14 at 21:56
This article says that the number is in the registry at HKLM\HARDWARE\DESCRIPTION\System\BIOS\SystemSKU so can be retrieved in PowerShell. This one says wmic /namespace:\\root\wmi path MS_SystemInformation. Does any of these work for you? – harrymc Feb 10 '14 at 20:56
On a Dell computer I can use Get-WmiObject Win32_BIOS | Select-Object SerialNumber (I have no HP to test this on). – harrymc Feb 10 '14 at 21:22
@harrymc - Looks like the registry and MS_SystemInformation is a go! Thanks, you should post it answer answer. I am disappointed in myself because I did come across the same article (registry method) but blew it off. – SgtOJ Feb 10 '14 at 23:16
up vote 3 down vote accepted

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.

share|improve this answer
The Win32_BIOS class does have the serial number, but that's different than HP's product number (P/N). Which I have recently discovered is call System SKU by Microsoft and Product SKU by SMBios. The registry and MS_SystemInformation class does store this P/N I am looking for. – SgtOJ Feb 11 '14 at 9:52

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:

share|improve this answer

If anyone else comes across this question, be advised, the entirety of win32_computersystem doesn't appear to contain the product number for servers, specifically. I was unable to actually find the information via WMI, but it turns out I was actually given the product number AND serial numbers for a number of servers (the spreadsheet was horribly formatted, so the two fields just looked like one big string until my afternoon coffee kicked in).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.