适用于 Windows 11 24H2 的 HWID .bat 替代方案
用 PowerShell CIM 查询或便携式 Windows 工具替代基于 wmic 的旧版 HWID 批处理命令,生成复合 SHA-256 硬件 ID。
HWID Checker · 2026年8月24日 · 3 分钟阅读
如果你用过运行 wmic diskdrive get serialnumber、wmic cpu get serialnumber、wmic bios get serialnumber、wmic baseboard get serialnumber 和 wmic csproduct get uuid 的 hwidChecker.bat 脚本,它可能在全新的 Windows 11 安装上失败。wmic.exe 已被弃用,WMIC 功能按需特性在 Windows 11 24H2 上默认禁用。PowerShell CIM cmdlet 是受支持的替代方案。
本文解释了发生了什么变化,展示了受支持的 PowerShell 等效命令,并介绍了一个无需 wmic 即可生成复合报告的本地 Windows 工具。
.bat 脚本做了什么
这个脚本很简单,在旧版 Windows 上运行良好:
@ECHO OFF
wmic diskdrive get model, serialnumber
wmic cpu get serialnumber
wmic bios get serialnumber
wmic baseboard get serialnumber
wmic path win32_computersystemproduct get uuid
getmac
它尝试在不发起网络请求的情况下打印多个硬件相关值和一个 MAC 地址。它现在的主要局限是兼容性:脚本依赖于一个可能未安装的已弃用命令。
为什么会失效
wmic.exe(Windows Management Instrumentation 命令行)自 Windows 10 21H1 起已被弃用。在 Windows 11 24H2 上,WMIC 是一个默认禁用的可选功能按需特性。微软的迁移指南建议改用 PowerShell CIM cmdlet 或编程式 WMI API。
如果你在全新的 24H2 安装上运行该脚本,你会看到:
'wmic' is not recognized as an internal or external command,
operable program or batch file.
你仍然可以通过"可选功能"手动安装 wmic,但这只是权宜之计,而非修复——微软已声明它将在未来版本中被完全移除。
PowerShell 替代方案(无需下载)
如果你只想要与 .bat 脚本相同的输出,将每行 wmic 替换为等效的 PowerShell CIM cmdlet 即可。打开 PowerShell 并粘贴:
# 磁盘序列号(替代:wmic diskdrive get model, serialnumber)
Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber
# CPU(替代:wmic cpu get serialnumber)
Get-CimInstance Win32_Processor | Select-Object Name, ProcessorId
# BIOS 序列号(替代:wmic bios get serialnumber)
Get-CimInstance Win32_BIOS | Select-Object SerialNumber
# 主板序列号(替代:wmic baseboard get serialnumber)
Get-CimInstance Win32_BaseBoard | Select-Object SerialNumber
# SMBIOS UUID(替代:wmic csproduct get uuid)
Get-CimInstance Win32_ComputerSystemProduct | Select-Object UUID
# MAC 地址(替代:getmac)
Get-NetAdapter | Select-Object Name, MacAddress
这些命令在从 Windows 10 到 11 24H2 及更高版本的每个 Windows 版本上都能运行。它们在底层使用相同的 WMI 数据,只是通过现代 PowerShell API 而非已弃用的 wmic.exe 包装器。
将其保存为 .ps1 文件,如果你想要像旧 .bat 一样的一键脚本:
# hwid-checker.ps1 — hwidChecker.bat 的现代替代方案
Clear-Host
Write-Host "=== HWID Checker ===" -ForegroundColor Cyan
Write-Host ""
Write-Host "Disk drives:" -ForegroundColor Yellow
Get-CimInstance Win32_DiskDrive | Format-Table Model, SerialNumber -AutoSize
Write-Host "CPU:" -ForegroundColor Yellow
Get-CimInstance Win32_Processor | Format-Table Name, ProcessorId -AutoSize
Write-Host "BIOS:" -ForegroundColor Yellow
Get-CimInstance Win32_BIOS | Format-Table SerialNumber -AutoSize
Write-Host "Motherboard:" -ForegroundColor Yellow
Get-CimInstance Win32_BaseBoard | Format-Table SerialNumber -AutoSize
Write-Host "SMBIOS UUID:" -ForegroundColor Yellow
Get-CimInstance Win32_ComputerSystemProduct | Format-Table UUID -AutoSize
Write-Host "Network adapters:" -ForegroundColor Yellow
Get-NetAdapter | Format-Table Name, MacAddress -AutoSize
Write-Host ""
Write-Host "Press any key to exit..." -ForegroundColor Gray
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')
右键点击 .ps1 文件并选择使用 PowerShell 运行。
.bat 脚本的另一个局限:没有哈希
即使 .bat 脚本还能用时,它也只打印原始序列号。如果有人向你要"你的 HWID",你仍然得自己想办法处理五个单独的值。大多数授权和反作弊系统会将多个序列号组合成单个哈希——.bat 脚本不会替你完成这一步。
一个能完成 .bat 所做一切(甚至更多)的免费工具
如果你想要与旧 .bat 相同的一键简便性——外加 SHA-256 哈希、导出到文件,且不依赖 wmic——请下载 Windows 版 HWID Checker。它是一个约 2.4 MB 的便携 .exe,无需安装。
# 双击 hwid-checker.exe — 与旧 .bat 相同,但:
# - 在 Windows 11 24H2 上运行(无需 wmic)
# - 读取 10+ 个标识符,而非仅 5 个
# - 将它们组合成单个 SHA-256 HWID
# - 使用 -save / -json 导出为 .txt 或 JSON
它读取而 .bat 脚本未读取的内容:
| 标识符 | .bat 脚本 | HWID Checker |
| --- | --- | --- |
| 磁盘序列号 | ✓ | ✓ |
| BIOS 序列号 | ✓ | ✓ |
| 主板序列号 | ✓ | ✓ |
| SMBIOS UUID | ✓ | ✓ |
| MAC 地址 | ✓(通过 getmac) | ✓ |
| CPU ProcessorId | ✗(cpu get serialnumber 并非 ProcessorId) | ✓ |
| Windows MachineGuid | ✗ | ✓ |
| 卷序列号 | ✗ | ✓ |
| 内存序列号 | ✗ | ✓ |
| 机箱序列号 | ✗ | ✓ |
| Windows 产品 ID | ✗ | ✓ |
| SHA-256 组合哈希 | ✗ | ✓ |
| 导出到文件 | ✗ | ✓ |
| 无 wmic 依赖 | ✗ | ✓ |
该 Windows 工具是只读的:它查询本地标识符、打印结果,并仅在你请求导出时写入报告。
你应该使用哪个?
| 你的情况 | 推荐 |
| --- | --- |
| 你只是现在需要看一次序列号 | 上面的 PowerShell 单行命令——无需下载 |
| 你需要 HWID 哈希(用于授权、支持等) | 下载工具——它会替你计算哈希 |
| 你在 Windows 11 24H2 上且 .bat 失效了 | PowerShell 单行命令,或该工具 |
| 你想要像旧 .bat 一样的可复用脚本 | 保存上面的 .ps1 脚本 |
| 你需要导出或自动化 | 工具的 -json 参数 |
总结
hwidChecker.bat 方案依赖于一个已弃用的可选组件,该组件在 Windows 11 24H2 上默认禁用,而且示例脚本没有复合哈希或导出功能。使用上面的 PowerShell 命令获取单个值,或使用 Windows 工具获取本地报告以及 JSON 或文本导出。
想要在不下载任何东西的情况下验证别人发给你的 HWID 字符串?将其粘贴到我们的在线 HWID 检测器中——它完全在你的浏览器中运行。