我发现根据制造商和销售渠道,检索主板序列号的结果可能会有很大不同。一些直接向最终客户销售并具有良好设备维修支持流程的制造商会在WMI中一致设置序列号信息。而提供OEM类型设备的其他制造商则取决于OEM来设置序列号。
由于序列号基于制造商的特定域或命名空间,因此不同制造商可能使用相同的序列号,尽管这种情况很少见,但你确实需要知道制造商和序列号。
一些销售终端在序列号方面是一致的,并且在更换故障主板时,将替换板的序列号设置为被替换板的序列号是更换程序的一部分。这意味着某人可以拥有几个设备具有相同的序列号,类似于进行LAN NIC MAC欺骗。
WMI查询将影响提供的序列号。除了序列号外,还有一个资产标记属性。
查看Win32_MotherboardDevice文档并尝试几个属性后,似乎没有太多有用的数据,肯定没有类似唯一序列号的东西。
在运行使用WMI查看几个不同属性的Select WMI查询结果的C++应用程序的Dell笔记本电脑上,我得到了以下结果:
Connected to ROOT\CIMV2 WMI namespace
Query for SELECT * FROM Win32_SystemEnclosure
SMBIOS SerialNumber: 49495G1
SMBIOS Name: System Enclosure
SMBIOS SMBIOSAssetTag:
SMBIOS Manufacturer: Dell Inc.
Query for SELECT * FROM Win32_BaseBoard
SMBIOS SerialNumber: .49495G1.CN486438441035.
SMBIOS Product: 0UY141
SMBIOS Name: Base Board
SMBIOS Manufacturer: Dell Inc.
Query for SELECT * FROM Win32_BIOS
SMBIOS SerialNumber: 49495G1
SMBIOS Name: Phoenix ROM BIOS PLUS Version 1.10 A10
SMBIOS Manufacturer: Dell Inc.
Query for SELECT * FROM Win32_ComputerSystem
SMBIOS Name: CIT-31204E1FF03
SMBIOS Manufacturer: Dell Inc.
Query for SELECT * FROM Win32_ComputerSystemProduct
SMBIOS Name: Latitude D830
SMBIOS IdentifyingNumber: 49495G1
SMBIOS UUID: 4C4C4544-0039-3410-8039-B4C04F354731
在这台笔记本电脑的底部,我看到一个带有条形码的贴纸,上面印着“SERVICE TAG 49495G1”,因此对于这台笔记本电脑,检索到的序列号是服务标识符。我可以访问戴尔网站,在支持区域查找此服务标记。
一台新的销售点终端用于POS Ready 7版本的Windows,并使用相同的C++ WMI应用程序提供以下输出。这类似于我从购买的零件构建的PC所提供的输出,该PC也没有序列号。该PC正在运行Windows 8.1。
Connected to ROOT\CIMV2 WMI namespace
Query for SELECT * FROM Win32_SystemEnclosure
SMBIOS SerialNumber: None
SMBIOS Name: System Enclosure
SMBIOS SMBIOSAssetTag: None
SMBIOS Manufacturer: To Be Filled By O.E.M.
Query for SELECT * FROM Win32_BaseBoard
SMBIOS SerialNumber: None
SMBIOS Product: EIN70-SAM
SMBIOS Name: Base Board
SMBIOS Manufacturer: INTEL Corporation
Query for SELECT * FROM Win32_BIOS
SMBIOS SerialNumber: None
SMBIOS Name: BIOS Date: 10/15/13 20:06:15 Ver: 04.06.05
SMBIOS Manufacturer: American Megatrends Inc.
Query for SELECT * FROM Win32_ComputerSystem
SMBIOS Name: GENPOSA-1
SMBIOS Manufacturer: To be filled by O.E.M.
Query for SELECT * FROM Win32_ComputerSystemProduct
SMBIOS Name: EIN70-SAM
SMBIOS IdentifyingNumber: None
SMBIOS UUID: 03000200-0400-0500-0006-000700080009
Win32_MotherboardDevice
,它返回文本Motherboard
作为我的设备ID(而Win32_BaseBoard
的SerialNumber
返回一个看起来像序列号的字符串)。因此,BaseBoard看起来是最好的选择(顺便说一句,BaseBoard的文档页面指出,“Win32_BaseBoard WMI类代表一个基板,也就是所谓的motherboard或系统主板”)。 - Veverke