WMI Win32_BaseBoard SerialNumber
Я использовал свойство Win32_BaseBoard SerialNumber для получения серийного номера материнской платы, и оно работает большую часть времени, но иногда на некоторых компьютерах я получаю SerialNumber = "Base Serial Number" в результате.
Существует ли программный способ получения этого серийного номера более эффективным способом или это просто проблема производителя? Я слышал, что все материнские платы поставляются с серийным номером без исключения. Это правда?
3 ответа
Будет ли правильный серийный номер, возвращаемый различными запросами WMI, зависеть от производителя устройства. Посмотрите ответ на этот вопрос stackru, ID материнской платы - WMI C++ Надежный? который содержит пару примеров, показывающих, что ваши результаты могут отличаться.
Некоторые из переменных - это то, является ли оборудование OEM или нет, и было ли это оборудование приобретено у производителя, который продает конечному клиенту, такого как Dell, или у производителя, который продает оборудование реселлерам, которые затем конфигурируют оборудование, или если оборудование было собрано из купленные запчасти.
Эти результаты обрабатывают свойства, полученные несколькими различными запросами 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
У меня была похожая проблема. Вы можете попробовать этот запрос и посмотреть, работает ли он для вас. select UUID from Win32_ComputerSystemProduct
Вполне возможно, что информация не предоставляется WMI. Вы можете легко это подтвердить, используя wbemtest.exe (или WMI CIM Studio, если он у вас установлен). На моем текущем компьютере Win32_BaseBoard.SerialNumber не нулевая, а пустая строка. Если это так, вам нужно будет найти другой способ получить эту информацию.