我使用Win32_BaseBoard SerialNumber屬性來獲取主板的序列號,並且它在大部分時間都工作,但有時在某些計算機上,我得到SerialNumber =「Base Board Serial Number」作爲結果。WMI Win32_BaseBoard SerialNumber
有沒有一種以更有效的方式獲得此序列號的程序化方法,或者它只是一個製造商問題?我聽說所有的主板都有序列號,沒有例外。這是真的?
我使用Win32_BaseBoard SerialNumber屬性來獲取主板的序列號,並且它在大部分時間都工作,但有時在某些計算機上,我得到SerialNumber =「Base Board Serial Number」作爲結果。WMI Win32_BaseBoard SerialNumber
有沒有一種以更有效的方式獲得此序列號的程序化方法,或者它只是一個製造商問題?我聽說所有的主板都有序列號,沒有例外。這是真的?
該信息可能未公開給WMI。您可以使用wbemtest.exe(或WMI CIM Studio,如果已安裝它)輕鬆地進行確認。在我當前的計算機上,Win32_BaseBoard.SerialNumber不是null,而是一個空字符串。如果是這種情況,您需要找到另一種方式來獲取這些信息。
我有類似的問題。你可以試試這個查詢,看看它是否適合你。 select UUID from Win32_ComputerSystemProduct
各種WMI查詢返回的序列號是否正確取決於設備製造商。請參閱此計算器問題的答案Motherboard ID - WMI C++ Reliable?,其中包含一些顯示您的結果可能有所不同的示例。
其中一些變量是設備是否爲OEM,以及設備是否從銷售給最終用戶的製造商處購買,例如戴爾或製造商向設備銷售商或設備銷售商設備由購買的部件組裝而成。
這些結果正在處理由幾個不同的WMI查詢檢索的屬性。
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