我使用Win32_BaseBoard SerialNumber属性来获取主板序列号并且它大部分时间都可以工作,但有时在某些计算机中我得到SerialNumber =“Base Board Serial Number”.
是否有一种编程方式以更有效的方式获得此序列号,或者它只是制造商的问题?我听说所有主板都带有序列号,没有例外.这是真的?
各种WMI查询返回的序列号是否正确取决于设备的制造商.请参阅此stackoverflow问题的答案,Motherboard ID – WMI C++ Reliable?包含一些示例,显示您的结果可能会有所不同.
一些变量是设备是否是OEM,以及设备是从向戴尔销售给最终客户的制造商处购买的,还是向向经销商销售设备的制造商处购买设备或者设备是从购买零件.
L"SELECT * FROM Win32_SystemEnclosure",L"SELECT * FROM Win32_BaseBoard",L"SELECT * FROM Win32_BIOS",L"SELECT * FROM Win32_ComputerSystem",L"SELECT * FROM Win32_ComputerSystemProduct",L"SELECT * FROM Win32_MotherboardDevice",
例如,这里是从销售点终端显示缺少的序列号信息.意图似乎是经销商或经销商或其他供应商将提供他们自己的序列号以及其他信息以基本上重新标记终端.
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