如何在 Windows 11/10 的 CMD 中检查 HWID(无需 WMIC)
使用可直接粘贴进 CMD 的命令检查 MachineGuid、SMBIOS UUID、BIOS、主板、硬盘和 MAC 标识符,无需 WMIC。
HWID Checker · 2026年9月21日 · 3 分钟阅读
如果你想在 CMD 中检查 HWID,首先要知道:Windows 并没有保存一个名为“HWID”的通用值。游戏可能使用固件 UUID,许可软件可能组合多个序列号,IT 系统可能使用安装标识符。因此应该查询对方真正需要的字段,而不是寻找一条“万能命令”。
本文所有命令都可以直接粘贴进 Windows 11 或 10 的命令提示符(cmd.exe)。需要 PowerShell 的命令已经使用 powershell -NoProfile -Command 包装,因此不会再遇到常见错误:
'Get-CimInstance' 不是内部或外部命令,也不是可运行的程序或批处理文件。
所有操作都是只读查询,不会修改、随机化或伪装任何标识符。
快速答案:主要 CMD 查询命令
| 标识符 | 直接粘贴进 CMD | 它实际标识什么 |
|---|---|---|
| MachineGuid | reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuid | 当前 Windows 安装,不是实体硬件 |
| SMBIOS 系统 UUID | powershell -NoProfile -Command "(Get-CimInstance Win32_ComputerSystemProduct).UUID" | 固件或虚拟机平台提供的系统 UUID |
| BIOS 序列号 | powershell -NoProfile -Command "(Get-CimInstance Win32_BIOS).SerialNumber" | OEM 固件记录 |
| 主板序列号 | powershell -NoProfile -Command "(Get-CimInstance Win32_BaseBoard).SerialNumber" | SMBIOS/WMI 暴露的主板记录 |
| 物理硬盘型号与序列号 | powershell -NoProfile -Command "Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber | Format-Table -AutoSize" | Windows 存储栈报告的设备信息 |
| CPU 与 ProcessorId | powershell -NoProfile -Command "Get-CimInstance Win32_Processor | Select-Object Name, ProcessorId | Format-Table -AutoSize" | CPU 型号和处理器签名/功能信息 |
| 网卡 MAC 地址 | getmac /v | Windows 当前报告的网络适配器地址 |
| C: 卷序列号 | vol C: | 文件系统元数据,不是物理硬盘序列号 |
如果对方只需要一个字段,不要发送整份报告。先确认字段名和格式。
正确打开命令提示符
- 按
Win + R。 - 输入
cmd。 - 按回车。
- 粘贴本文中的一条命令。
- 再按回车执行。
CMD 提示符通常类似:
C:\Users\YourName>
Windows Terminal 只是承载终端的窗口,其中可以运行“命令提示符”或 PowerShell 标签页。本文给出的完整命令即使内部调用 PowerShell,也能从 CMD 启动。普通本地只读查询通常不需要管理员权限,但学校或企业策略仍可能限制访问。
在 CMD 中检查 MachineGuid
reg query "HKLM\SOFTWARE\Microsoft\Cryptography" /v MachineGuid
reg query 只读取注册表值,不会修改注册表。MachineGuid 标识一套 Windows 安装,不是主板 UUID、BIOS 或硬盘序列号。重新安装、系统镜像和克隆可能影响它;部分应用会使用,另一些不会。
在 CMD 中检查 SMBIOS UUID
powershell -NoProfile -Command "(Get-CimInstance Win32_ComputerSystemProduct).UUID"
Get-CimInstance 是 PowerShell cmdlet,完整命令会从 CMD 内部启动 PowerShell。微软将该 UUID 文档化为来自 SMBIOS 的只读值。
以下结果不能当作可靠唯一身份:
00000000-0000-0000-0000-000000000000;FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF;- 重复的 OEM 默认值;
- 虚拟机 UUID,而不是物理宿主机 UUID;
- 空白值。
BIOS 和主板序列号
powershell -NoProfile -Command "(Get-CimInstance Win32_BIOS).SerialNumber"
powershell -NoProfile -Command "(Get-CimInstance Win32_BaseBoard).SerialNumber"
它们来自不同的 Windows 管理类,但 OEM 可能在两个字段中写入同一个整机服务标识,因此相同结果不一定是程序重复读取。空白、Default string、To Be Filled By O.E.M. 或带斜杠的 OEM 字符串也可能出现,并不直接表示主板故障。
在 CMD 中检查物理硬盘信息
powershell -NoProfile -Command "Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber | Format-Table -AutoSize"
一定要将硬盘型号和序列号一起保存。显示形式取决于硬盘、控制器、USB 桥接器、驱动程序和虚拟化层。下划线、句点或前导零不代表序列号无效。例如:
0000_0000_0000_0000_8CE3_8E10_01A6_D7CE.
仍包含非零信息,不是全零占位符。
vol C: 不是物理硬盘序列号
vol C:
它返回文件系统中的卷序列号,格式化或重建卷可能改变它。它不是 Win32_DiskDrive 报告的 SSD/HDD 序列号。
在 CMD 中检查 CPU 信息
powershell -NoProfile -Command "Get-CimInstance Win32_Processor | Select-Object Name, ProcessorId | Format-Table -AutoSize"
Name 是系统报告的 CPU 型号。ProcessorId 不是每颗芯片唯一的序列号,类似处理器可能返回相同值;全零值是占位符。虚拟机可能显示虚拟 CPU 名称。若只想查看 CPU 型号,请阅读怎么查看自己电脑的 CPU。
使用 CMD 原生命令检查 MAC
getmac /v
结果可能同时包含物理网卡、VPN、Hyper-V、隧道和其他虚拟适配器。Wi-Fi 隐私功能还可能呈现私有 MAC。MAC 标识的是网络接口,不是整台电脑。
为什么 Windows 11 中的 WMIC 命令会失败
旧教程经常使用:
wmic csproduct get uuid
wmic bios get serialnumber
wmic baseboard get serialnumber
wmic diskdrive get model,serialnumber
微软从 Windows 10 21H1 开始弃用 WMIC。自 2026 年 8 月起,Windows 11 24H2 和 25H2 已不再包含 WMIC,也不能通过 Feature on Demand 重新添加。底层 WMI 仍受支持。因此本文从 CMD 调用 PowerShell CIM,而不是要求重新安装 WMIC。详见 Windows 11 中 WMIC UUID 命令无法运行。
为什么 CMD 不认识 Get-CimInstance
下面这条属于 PowerShell,直接粘贴进 CMD 会失败:
Get-CimInstance Win32_ComputerSystemProduct
在 CMD 中应使用:
powershell -NoProfile -Command "(Get-CimInstance Win32_ComputerSystemProduct).UUID"
或者按 Win + R,输入 powershell 打开 PowerShell,再执行内部表达式。
空白、通用值和虚拟环境
Windows 只能显示固件、驱动和当前运行环境提供的数据。零售主板、板载内存、更换后的主板以及部分 OEM 不一定提供有效序列号。
以下名称通常表示虚拟设备:
StratoVirt
Red Hat VirtIO SCSI Disk Device
Red Hat VirtIO Ethernet Adapter
QEMU
VMware
VirtualBox
这时查询的是 Windows 客户机。UUID、虚拟硬盘和虚拟 MAC 可能属于虚拟机,而不是面前的物理笔记本或服务器。学校或企业设备也可能通过策略禁止 PowerShell/WMI;不要为了绕过策略而关闭安全防护。
是否存在一条输出“我的 HWID”的命令?
不存在。厂商可能组合 SMBIOS UUID、安装值、主板、硬盘、TPM、应用令牌和服务端设备记录。某个诊断工具生成的哈希不会自动成为游戏使用的 HWID。
如需逐项了解每种序列号、正常输出和变化条件,请阅读完整 HWID 序列号命令参考。本文专注于能从 CMD 启动的命令和常见执行错误。
一次运行全部检查
Windows 下载页提供:
- 便携 EXE:显示进度、字段状态、设备上下文,支持文本和结构化 JSON;
- 可读 BAT:使用 Windows PowerShell CIM,标记缺失和占位值,并在结束时暂停。
EXE 的带版本 SHA-256 值只是比较本工具报告的摘要,不是通用或永久稳定的厂商 HWID。BAT 不生成摘要。
隐私建议
硬件与安装标识符在关联账号、员工或个人后可能成为个人数据。只分享对方要求的字段,遮挡无关序列号、MachineGuid 和 MAC,不要在公共论坛发布完整报告。本文命令均在本地运行,不会上传输出。
常见问题
检查 HWID 最好的 CMD 命令是什么?
如果需要固件系统 UUID:
powershell -NoProfile -Command "(Get-CimInstance Win32_ComputerSystemProduct).UUID"
MachineGuid、硬盘、主板或 BIOS 应使用上方对应命令。
这些命令会改变 HWID 吗?
不会,全部是只读查询。
需要管理员权限吗?
普通本地查询通常不需要,但组织策略或特定设备提供程序可能限制访问。
恢复出厂设置会改变这些值吗?
固件和实体部件序列号通常保持不变,安装级或应用级状态可能变化。参阅恢复出厂设置会改变 HWID 吗。
主要技术资料
- Microsoft Learn:WMIC 状态和 PowerShell 替代方案
- Microsoft Learn:Win32_ComputerSystemProduct.UUID
- Microsoft Learn:Win32_DiskDrive.SerialNumber
- Microsoft Learn:
reg query - Microsoft Learn:
getmac
可靠的方法是先确定真正需要的字段,再运行 CMD 原生命令或经过 CMD 包装的 PowerShell CIM 查询。Windows 并不存在一个通用 HWID。