UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。
组成
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字
UUID由以下几部分的组合:
(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
(2)时钟序列。
(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。
UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。
-------以上内容摘自《百度百科》
因为软件产品中需要与硬件码进行绑定,就想到了UUID,通过百度,网上搜索了一堆之后,发现大部分的代码都是如下:
需要引用:System.Management;
string processor = "Win32_Processor";//类名 ManagementClass driveClass= new ManagementClass(processor); Console.WriteLine(driveClass.GetQualifierValue("UUID"));
然后,让我们部门所有同事在各自的电脑上运行了一次,发现结果如下:
全部运行的结果都是相同的。(这是为什么呢??到现在我也不知道,但不甘心,继续搜Google)
----------------------------------------------我是分隔线-----------------------------------------------
功夫不负有心人,后来查资料发现,Windows PowerShell也可以获取UUID,虽然对于PowerShell我也不熟悉,但核心是能不能解决我的问题?
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework 的强大功能。
它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。
首先,你必须保证操作系统上有PowerShell安装在您的系统上,另外Vs开发工程中需要引用 System.Management.Automation.dll, 这个dll在我电脑以下路径里:“ C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\”, 本机操作系统:Win7 核心的代码如下:
private static string GetUUID() { try { string uuid = string.Empty; using (PowerShell PowerShellInstance = PowerShell.Create()) { PowerShellInstance.AddScript("(get-wmiobject Win32_ComputerSystemProduct).UUID"); //OK Collection<PSObject> PSOutput = PowerShellInstance.Invoke(); foreach (PSObject outputItem in PSOutput) { if (outputItem != null) { uuid += outputItem.BaseObject.ToString(); } } } return uuid; } catch { return string.Empty; } }
其调用其实就是使用PowerShell的Script进行获取。因为在调用PowerShell时,可能会比较的慢,.net中也提供了异步调用的机制。核心代码如下:
private static string GetAsyncUUID() { try { string uuid = string.Empty; using (PowerShell PowerShellInstance = PowerShell.Create()) { PowerShellInstance.AddScript("(get-wmiobject Win32_ComputerSystemProduct).UUID"); //OK PSDataCollection<PSObject> outputCollection = new PSDataCollection<PSObject>(); outputCollection.DataAdded += outputCollection_DataAdded; PowerShellInstance.Streams.Error.DataAdded += Error_DataAdded; IAsyncResult result = PowerShellInstance.BeginInvoke<PSObject, PSObject>(null, outputCollection); while (result.IsCompleted == false) { Console.WriteLine("Waiting for pipeline to finish..."); Thread.Sleep(1000); // While里面可以写上执行等待中的一些事情 } foreach (PSObject outputItem in outputCollection) { if (outputItem != null) { uuid += outputItem.BaseObject.ToString(); } } } return uuid; } catch { return string.Empty; } } static void Error_DataAdded(object sender, DataAddedEventArgs e) { Console.WriteLine("An error was written to the Error stream!"); } static void outputCollection_DataAdded(object sender, DataAddedEventArgs e) { Console.WriteLine("Object added to output."); }
以上代码运行之后,经过测试之后,部门没有重复的。
结果如下:
暂时,从以上测试结果分析来看,这个方法是可行的。但目前仍然有比较担心的几个问题:
1、PowerShell在不同的版本里面,调用的方法会不会不一样?因为做为B/s软件需要考虑更多的Windows服务器? 比如: (get-wmiobject Win32_ComputerSystemProduct).UUID
2、为了安全,PowerShell会不会被服务器给禁用?
3、因为B/s软件是需要IIS来运行的,会不会出现权限不足的情况??
以上所述是小编给大家介绍的使用PowerShell .Net获取电脑中的UUID的相关知识,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]