windows — идентификатор материнской платы — WMI надежный?

Я использую WMI в классах C ++, чтобы получить серийный номер моей материнской платы.
Запрос следующий:

"SELECT SerialNumber FROM Win32_BaseBoard"

Я написал запрос сам, так что я не уверен, что он правильный, но он что-то возвращает:
/9637CW1/CN1296131Q0BA8/, Возвращенная строка имеет одинаковый формат на нескольких компьютерах, поэтому я предполагаю, что запрос правильный.

Мой вопрос: действительно ли я запрашиваю серийный номер материнской платы Вот ? Потому что я видел другой класс под названием "Win32_MotherboardDevice" (который не имеет свойства «серийный номер»). Было бы хорошей идеей использовать это как идентификатор компьютера? В настоящее время я использую серийный номер жесткого диска, но я подумал, что лучше использовать серийный номер более надежного компонента, такого как материнская плата, так как диск с большей вероятностью будет заменен, чем материнская плата.

Спасибо 🙂

1

Решение

Я обнаружил, что получение серийного номера материнской платы может привести к очень разным результатам в зависимости от производителя и канала распространения. Некоторые производители, которые продают конечному потребителю и имеют хорошие процессы поддержки при ремонте оборудования, будут последовательны в настройке информации о серийном номере для WMI. Другие производители, поставляющие оборудование типа OEM, будут зависеть от производителя, который установит серийный номер.

Поскольку серийный номер находится в определенном домене или пространстве имен в зависимости от производителя, возможно, хотя и маловероятно, что разные производители могли использовать один и тот же серийный номер, поэтому вам действительно нужно знать как производителя, так и серийный номер.

Некоторые терминалы в точках продаж согласуются с серийным номером, и часть процедуры замены материнской платы в случае неисправной материнской платы состоит в том, чтобы установить серийный номер заменяющей платы на серийный номер заменяемой платы. Это подразумевает, что у кого-то может быть один и тот же серийный номер для нескольких единиц оборудования, подобный подделке MAC сетевой карты LAN.

Запрос WMI будет иметь значение для предоставленного серийного номера. В дополнение к серийному номеру также есть свойство тега актива.

Глядя на документацию для Win32_MotherboardDevice и, попробовав несколько свойств, кажется, что там не так много полезных данных, конечно, нет ничего похожего на уникальный серийный номер.

На ноутбуке Dell С Windows XP, когда я запускаю приложение C ++, которое использует WMI, чтобы увидеть результаты нескольких разных Select WMI запрашивает несколько различных свойств, я получаю следующие результаты:

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

Новый терминал торговой точки, предназначенный для перепродажи с версией POS Ready 7 для Windows, обеспечивает следующий вывод с тем же приложением C ++ WMI. Это похоже на вывод с компьютера, который я сам изготовил из приобретенных деталей, у которых также не было серийных номеров. Этот компьютер работает под управлением 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
1

Другие решения


По вопросам рекламы [email protected]