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 не нулевая, а пустая строка. Если это так, вам нужно будет найти другой способ получить эту информацию.

Другие вопросы по тегам