通过 Powershell 获取 HP 产品编号

通过 Powershell 获取 HP 产品编号

我已经整理了一个强大的 HP Warrant Lookup PowerShell 脚本。但是,我不知道如何在自动化过程中获取 HP 系统的产品编号。所以...

如何通过 PowerShell 获取 HP 产品编号(而不是序列号)?虽然我只想使用内置的开箱即用的 Windows 和 PowerShell 命令,但我也愿意接受其他想法。最终目标是以最可靠、侵入性最小的方式(即安装第三方软件)检索产品编号。

故障排除

尝试过:

Get-WmiObject Win32_ComputerSystem | Select-Object OEMStringArray

结果:

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

...但期待找到XT908UT#ABA

答案1

以下是适用于各种计算机型号的一些方法。

方法 1:注册表

HP 产品编号位于注册表中,因此可以在 PowerShell HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS 项目中检索SystemSKU

更多信息和脚本可以在文章中找到:
如何:使用 powershell 查找所有 HP 服务器的 HP 产品编号

方法 2:root\wmi – MS_SystemInformation

MS_SystemInformation 类在其成员中包含产品编号SystemSKU
(据推测它像第一种方法一样从注册表中获取产品编号。)

有关详细信息,请参阅Richard Siddaway 的博客

方法 3:Win32_BIOS 类

以下片段查找某些计算机品牌的产品编号。已在戴尔上测试。

Get-WmiObject Win32_BIOS | Select-Object SerialNumber

Microsoft 参考信息可在以下文章中找到Win32_BIOS 类

答案2

这是在 HP 笔记本电脑上测试的。我认为 HP“产品编号”在 win32_computersystem WMI 中称为 SystemSKUNumber。在我的 HP 笔记本电脑上测试。

Get-WmiObject win32_computersystem | Select-Object SystemSKUNumber

将导致:

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

答案3

如果其他人遇到这个问题,请注意,整个 win32_computersystem 似乎不包含服务器的产品编号。我无法通过 WMI 找到这些信息,但事实证明我实际上获得了许多服务器的产品编号和序列号(电子表格的格式很糟糕,所以在我下午喝咖啡之前,这两个字段看起来就像一个大字符串)。

答案4

适用于 Windows 7 和 Windows 10 来自另一位用户的帖子。@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

或者尝试

$Server='ComputerName'

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

$Server可以直接用 ComputerName 替换。例如...

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

请记住,如果您在域上,则可能需要使用invoke-command-credential参数提供凭据。

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

或者

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

如果客户端上没有配置 WinRm,您可能会遇到问题。

相关内容