我希望为我管理的某些嵌入式系统生成唯一 ID。这些系统运行的是 Windows Embedded 7 Standard 和 .NET 4.0。 ID 必须:
- 相对独特——每个嵌入式系统都在相同的主板、驱动器等上运行,我不会有冲突。
- 坚持重新安装——这些计算机会定期使用我们软件的新版本进行重新镜像。
- 不能依赖磁盘序列号——我们使用的不是真正的磁盘,而是带有 CF 转 SATA 适配器的 CF 卡,并且 CF 卡偶尔会被换掉。
此外,我的机器中有多个 NIC,因此只有有人能告诉我如何识别板载 NIC 和 USB 设备时,依赖板载 NIC MAC 地址才有效。经过进一步研究,这似乎在托管代码的范围内是不可能的。
完成此任务的最佳方法是什么?
最佳答案
我建议你使用 WMI获取有关机器 CPU 的信息,使用 Win32_Processor类(class)。然后,您可以根据 ProcessorId
和 UniqueId
等属性为机器构造一个唯一 ID。
这样您就可以使用每台机器的 CPU 本身作为机器 ID 的持久“存储”。
关于c# - 在重新安装和驱动器更改期间保持不变的持久系统/处理器 ID (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3881858/