哪个硬件ID是唯一的?

时间:2017-09-23 17:57:42

标签: c# sql-server windows uniqueidentifier

我想制作一个软件,用唯一的Id激活它。所以我获得了软件序列号的mac地址,但在某些计算机中,mac通过重置计算机而被更改。所以我必须再设置序列号来激活软件。

您建议在C#中使用什么序列号?

1 个答案:

答案 0 :(得分:0)

没有可用的通用硬件ID,英特尔试图在其奔腾III中提供处理器序列号,但有a large controversy over it并且它已从以后的型号中删除,并且在后代中不存在。

您可以读取特定的硬件ID,但没有标准化的方法。有关可能的选择,请参阅关联的问题“What's a good way to uniquely identify a computer?”。

我需要这样做的选项是使用Windows序列号,每个机器应该是唯一的,即使对于克隆的机器(由于它在sysprep过程中发生变化),除非它们违反微软的许可也是没有系统化的克隆。

这可以通过WMI

进行检索
var s = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_OperatingSystem");
var obj = s.Get().Cast<ManagementObject>().First();
var serial = obj["SerialNumber"].ToString();