如何用C#获取Windows 10关于框中的唯一计算机标识?
刚好对这个场景很熟悉!你提到的Windows 10「关于」面板里的唯一计算机标识,其实就是设备UUID,它确实可以通过System.Management命名空间来获取,不管是C#还是PowerShell都能轻松实现,下面给你具体的代码和比对方案:
C# 获取并验证设备UUID
1. 准备工作
首先确保你的项目引用了System.Management程序集,然后在代码顶部添加命名空间:
using System.Management; using System;
2. 获取设备UUID的方法
通过WMI查询Win32_ComputerSystemProduct类的UUID属性,这就是「关于」面板里显示的唯一标识:
public static string GetDeviceUuid() { string deviceUuid = string.Empty; try { // 构造WMI查询语句,获取计算机产品的UUID using (var searcher = new ManagementObjectSearcher("SELECT UUID FROM Win32_ComputerSystemProduct")) { foreach (var obj in searcher.Get()) { deviceUuid = obj["UUID"]?.ToString() ?? string.Empty; break; // 只需要第一个结果 } } } catch (ManagementException ex) { // 捕获异常,比如权限不足、WMI服务未启动等情况 Console.WriteLine($"获取设备UUID失败: {ex.Message}"); } return deviceUuid; }
3. 比对本地标识实现向后兼容
如果你需要验证当前设备是否和之前记录的标识一致,可以写一个简单的比对方法:
public static bool IsMatchingDevice(string storedDeviceUuid) { if (string.IsNullOrEmpty(storedDeviceUuid)) return false; string currentUuid = GetDeviceUuid(); // 忽略大小写比对,避免格式差异问题 return string.Equals(currentUuid, storedDeviceUuid, StringComparison.OrdinalIgnoreCase); }
PowerShell 查询设备UUID
如果你想用PowerShell快速获取这个标识,有两种方式:
- 传统WMI命令(兼容旧版PowerShell):
Get-WmiObject -Class Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID
- 现代CIM命令(PowerShell 5.1及以上推荐,性能更好):
Get-CimInstance -ClassName Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID
注意事项:如果设备更换了主板等核心硬件,这个UUID会发生变化;部分虚拟机或未正确配置硬件信息的设备,可能会返回全0的UUID值,这种情况建议额外做异常处理。
内容的提问来源于stack exchange,提问作者Trevy Burgess
相关产品推荐
相关产品推荐

