Windows GetSystemIdForPublisher不';t返回唯一ID

Windows GetSystemIdForPublisher不';t返回唯一ID,windows,winapi,uwp,Windows,Winapi,Uwp,我用它来识别机器ID。根据文档,它们是唯一的,但我有一些机器返回相同的ID。这些机器完全无关,没有共同的历史。它们位于不同的国家,属于不同的用户。这些机器的Windows版本是最新的Windows 190910.0.18363update 文件明确指出: 该方法将首先尝试使用受信任的平台模块 (TPM),如果存在,则获取ID。如果不存在TPM,则方法 将尝试从统一可扩展固件接口获取ID (UEFI)。如果这两个来源都不可用,则将使用此方法 返回Windows注册表支持的ID。就 在Windows

我用它来识别机器ID。根据文档,它们是唯一的,但我有一些机器返回相同的ID。这些机器完全无关,没有共同的历史。它们位于不同的国家,属于不同的用户。这些机器的Windows版本是最新的Windows 1909
10.0.18363
update

文件明确指出:

该方法将首先尝试使用受信任的平台模块 (TPM),如果存在,则获取ID。如果不存在TPM,则方法 将尝试从统一可扩展固件接口获取ID (UEFI)。如果这两个来源都不可用,则将使用此方法 返回Windows注册表支持的ID。就 在Windows注册表中,ID将不满足上述所有要求 保证。例如,如果系统没有TPM或UEFI 支持,因此从注册表中获得了一个ID,一个干净的 安装Windows将返回一个新的、不同的ID。 此方法的调用方应引用 返回SystemIdentificationInfo以确定ID所在的位置 为了了解所提供的担保,从获得

就我所见,这些陈述都不能向我解释这里发生了什么。还有人知道发生了什么吗?非常感谢您的帮助

附录:

我们以cpu-z报告的形式收到来自两个不同大陆的两个人的反馈,他们的机器id相同:

用户A:

Mainboard Model Z87M Extreme4 (0x00000444 - 0xECE9B6D4)
UEFI Yes
BIOS Vendor American Megatrends Inc.
BIOS MSG 63-0100-000001-00101111-1xxxx5-Chipset
BIOS Date 12/10/15
Mainboard Vendor 000001
用户B:

Mainboard Model 151-BE-E097 (0x0000025D - 0x0A74C7F0)
UEFI Yes
BIOS Vendor American Megatrends Inc.
BIOS MSG 63-0100-000001-00101111-0XXXX5-Chipset
BIOS Date 09/10/15
Mainboard Vendor 000001
调用GetSystemIdForPublisher()时,两者都具有相同的标识符:


我们在全球有大约60家客户的计算机返回了这个准确的ID。

您检查过SystemIdentificationInfo.Source属性了吗?这些机器是从普通主机创建的吗?您是否评估了
Source
属性以查看ID来自何处?@SimonMourier我非常确定没有创建它们的主机。巧合的是,不同国家的一些用户显示了相同的ID。Simon,可检查,非常感谢,我还不知道属性。我会尽快更新我的帖子,因为我有新的信息!再次感谢!!其中两个系统上的源代码来自UEFI NVRam中的UEFIWindows存储ID(主要用于许可)(请参见此处带有EAEC226F-C9A3-477A-A826-DDC716CDC0E3 guid的值)。如果你能在这些机器上启动UEFI,你可以检查这些。我相信这与你在Windows10的“关于你的电脑”中看到的设备id类似(或者是派生的?)。这些机器是否具有相同的设备Id?你也可以试试:看看它是否返回相同的id。机器是否有相同的主板/型号/供应商?
XlPRXXXlAPXk-yFXXXJUv3-XXXXXXXXXXXXX = [source is UEFI, ]
==> X included for obfuscation