寻找唯一的 GUID 来标识 Windows 安装

use*_*967 19 windows

我正在寻找存储在 Windows 注册表中的唯一 GUID,它可以帮助我识别 Windows 安装或 PC。

GUID 必须;

  • 一直存在
  • 对于特定的 Windows 安装是唯一的,即没有其他计算机具有相同的 ID
  • 从不改变

非常感谢

小智 10

您可以从 Windows 注册表中获取 GUID,例如:

var regpath = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid";
var oWSS = new ActiveXObject("WScript.Shell");
clientGUID = oWSS.RegRead(regpath);
Run Code Online (Sandbox Code Playgroud)


Zor*_*che 7

如果该安装的驱动器移动到另一个系统,您是否希望这个数字会改变或保持不变?

如果使用ghost 或其他方式克隆安装,您是否希望更改此数字?您能否依赖于始终按照 Microsoft 的建议进行 sysprep 的克隆系统?SID 应该没问题,如果你能确定你的安装永远不会被克隆。

如果是多引导系统(即系统安装了 Windows 7 和 Windows XP),您是否需要将这两个安装标识为唯一的、相关的或什么?

为什么您需要将其作为 Windows 安装的一部分,而不是硬件提供的东西,也许是处理器序列号

我假设您是针对用于库存目的的某种脚本或工具询问此问题的?

为什么不在第一次运行该工具时简单地生成自己的编号并将其保存在 LOCAL_MACHINE 注册表配置单元中?甚至可能使用 RFC4122 类型 1 编号,其中应包括网络接口之一的硬件地址。这样,您可以通过将 UUID 与当前网络适配器进行比较来检查 UUID 是否仍属于该系统。


Mat*_*ons 0

假设它是 Windows 服务器,有一篇知识库文章讨论了如何将其从 Win2k 中取出:KB224544

我不知道 LDP.exe 是否仍然这样运行,但有可能。