可通过PowerShell、CMD、VBScript或离线注册表四种方法提取Windows产品密钥:一、PowerShell执行Get-WmiObject命令读取OA3xOriginalProductKey;二、CMD运行wmic命令获取BIOS嵌入密钥;三、VBScript解码DigitalProductId注册表值;四、离线加载SYSTEM/SAM hive后解析DigitalProductId。

如果您需要在Windows系统中查看已安装的操作系统产品密钥,但无法通过图形界面直接获取,则可以借助命令提示符执行特定指令来检索嵌入在系统注册表或固件中的密钥信息。以下是实现该目标的多种方法:
一、使用PowerShell命令提取数字许可证绑定的密钥
Windows 10/11在激活后会将数字许可证与硬件ID绑定,并将部分密钥信息以加密形式存储于注册表中。PowerShell可通过WMI接口读取原始密钥数据并解码显示。
1、以管理员身份运行PowerShell:右键“开始”按钮 → 选择“Windows PowerShell(管理员)”或“终端(管理员)”。
2、输入以下命令并按回车执行:
Get-WmiObject -query 'select * from SoftwareLicensingService' | Select-Object OA3xOriginalProductKey
3、若系统使用数字许可证且未清除原始密钥,返回结果中OA3xOriginalProductKey字段即为可识别的产品密钥。
二、使用CMD调用wmic命令查询BIOS嵌入密钥
部分OEM厂商(如Dell、HP、Lenovo)会在UEFI固件中写入预装Windows的产品密钥,该密钥可通过wmic接口从BIOS区域读取,适用于未更换主板的设备。
1、以管理员身份运行命令提示符:搜索“cmd” → 右键“以管理员身份运行”。
2、输入以下命令并回车:
wmic path softwarelicensingservice get OA3xOriginalProductKey
3、若返回非空值,该字符串即为原始预装密钥;若返回空白或错误代码0x80041017,说明密钥未存储于固件或已被擦除。
三、使用第三方脚本工具(VBScript)解码注册表密钥
Windows安装时会将加密后的密钥写入注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId,VBScript可读取该二进制值并执行RSA算法逆向还原明文密钥。
1、新建记事本文件,粘贴以下内容:
Dim objshell,path,key
Set objshell = CreateObject("WScript.Shell")
path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"
key = objshell.RegRead(path)
strProductKey = ConvertToKey(key)
WScript.Echo strProductKey
Function ConvertToKey(regkey)
Const KeyOffset = 52
Dim isWin8, Maps, i, j, current, keyOutput, last, keyPartLast, keyPart
isWin8 = (regkey(66) \ 6) And 1
regkey(66) = (regkey(66) And &HF7) Or ((isWin8 And 2) * 4)
Maps = "BCDFGHJKMPQRTVWXY2346789"
keyOutput = ""
For i = 24 To 0 Step -1
current = 0
For j = 14 To 0 Step -1
current = current * 256
current = regkey(j + KeyOffset) + current
regkey(j + KeyOffset) = (current \ 24)
current = current Mod 24
Next
keyOutput = Mid(Maps, current + 1, 1) & keyOutput
If (((25 - i) Mod 6) = 0) And (i 0) Then keyOutput = "-" & keyOutput
Next
ConvertToKey = keyOutput
End Function
2、将文件保存为productkey.vbs,确保扩展名为.vbs而非.txt。
3、双击运行该脚本,弹出窗口中显示的即为当前系统对应的产品密钥。
四、使用PowerShell加载本地注册表 hive 提取离线密钥
当系统无法正常启动时,可从另一台Windows电脑加载故障机的SYSTEM和SAM注册表 hive,再通过PowerShell解析其DigitalProductId字段获取密钥。
1、将故障机的C:\Windows\System32\config\SYSTEM与C:\Windows\System32\config\SAM文件复制至可用主机的任意目录(如D:\offline\)。
2、在可用主机上以管理员身份运行PowerShell,依次执行:
reg load HKLM\OfflineSystem D:\offline\SYSTEM
reg load HKLM\OfflineSAM D:\offline\SAM
3、执行密钥提取命令:
(Get-ItemProperty 'HKLM:\OfflineSystem\ControlSet001\Control\IDConfigDB\HardwareProfiles\0000').DigitalProductId
4、运行VBScript函数或外部解码工具处理该十六进制数组,获得明文密钥。










