Velvet Star Monitor

Standout celebrity highlights with iconic style.

news

Get HP Product Number via Powershell

Writer Mia Lopez

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,

... But expecting to find XT908UT#ABA

6

6 Answers

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 PowerShellHKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOSitem 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.

1

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

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

$PN = (Get-WmiObject -Namespace Root\wmi MS_SystemInformation -ComputerName $PC -ErrorAction SilentlyContinue ).SystemSKU
Write-host $PN
1

Works on Windows 7 & Windows 10 From another user that posted. @harrymc

#Open Powershell and type the following.
$Server='ComputerName'
$reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $Server)
$regkey = $reg.OpenSubkey("HARDWARE\\DESCRIPTION\\System\\BIOS")
$SystemSku = $regkey.GetValue("SystemSku")
$SystemSku

or try

$Server='ComputerName'
Get-WmiObject -ClassName CIM_System -ComputerName $Server| Select-object -ExpandProperty SystemSKUNumber

$Server can be directly replaced by a ComputerName. example...

Get-WmiObject -ClassName CIM_System -ComputerName PC001 | select SystemSKUNumber

Keep in mind if you are on a domain you may need to provide credentials by either using an invoke-command or -credential parameter.

Get-WmiObject -Credential Domain\UserID -ClassName CIM_System -ComputerName $Server

or

Invoke-Command -Credential Domain\UserID -ComputerName PC001 -ScriptBlock {Get-WmiObject -Credential -ClassName CIM_System}

if WinRm is not configured on client, you may experience issues.

1

simply from cmd line:

wmic /namespace:\\root\wmi path MS_SystemInformation
2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy