gpt4 book ai didi

c++ - 主板 ID - WMI C++ - 可靠吗?

转载 作者:行者123 更新时间:2023-11-30 04:04:36 34 4
gpt4 key购买 nike

我在 C++ 类中使用 WMI 来检索我的主板的序列号。查询如下:

"SELECT SerialNumber FROM Win32_BaseBoard"

我自己写了查询,所以我不确定它是否正确,但它确实返回了一些东西:/9637CW1/CN1296131Q0BA8/。返回的字符串在多台计算机上的格式相同,因此我假设查询是正确的。

我的问题是:我真的要在这里查询主板序列号吗?因为我看到另一个名为 "Win32_MotherboardDevice" 的类(它没有“序列号”属性)。将其用作计算机标识符是个好主意吗?我目前使用硬盘序列号,但我认为使用更可靠的组件(例如主板)的序列号会更好,因为磁盘比主板更容易更换。

谢谢你:)

最佳答案

我发现,根据制造商和分销 channel 的不同,检索主板的序列号可能会导致截然不同的结果。一些向最终客户销售产品并拥有良好的设备维修支持流程的制造商将在为 WMI 设置序列号信息方面保持一致。其他提供 OEM 类型设备的制造商将取决于 OEM 来设置序列号。

由于序列号位于基于制造商的特定域或 namespace 内,不同制造商使用相同序列号的可能性不大,因此您确实需要同时了解制造商和序列号。

一些销售点终端的序列号是一致的,在主板出现故障的情况下更换主板的部分程序是将更换板的序列号设置为被更换板的序列号.这意味着某人可能拥有多台设备的相同序列号,类似于进行 LAN NIC MAC 欺骗。

WMI 查询将对提供的序列号产生影响。除了序列号之外,还有一个 Assets 标签属性。

查看 Win32_MotherboardDevice 的文档并尝试了一些属性,那里似乎没有太多有用的数据,当然不是类似于唯一序列号的数据。

在装有 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”字样,因此对于这台笔记本电脑,检索到的序列号是服务标签标识符。我可以访问戴尔网站并在支持区域查找此服务标签。

用于转售 POS Ready 7 版本 Windows 的新销售点终端使用相同的 C++ WMI 应用程序提供以下输出。这类似于我用购买的部件自行构建的 PC 的输出,这些部件也没有序列号该 PC 运行的是 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

关于c++ - 主板 ID - WMI C++ - 可靠吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23675550/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com