关于使用PowerShell脚本提取Windows产品密钥的技术咨询
关于使用PowerShell脚本提取Windows产品密钥的技术咨询
我找到一组可用于提取Windows产品密钥的PowerShell函数,能从系统的数字许可证信息中解析出有效密钥,下面是完整的可运行脚本代码:
function Get-WindowsProductKey { function Get-OSDigitalID($Key) { $KeyOffset = 52 $isWin8 = [Int]($Key[66] / 6) -bAND 1 $HF7 = 0xF7 $Key[66] = ($Key[66] -bAND $HF7) -bOR (($isWin8 -bAND 2) * 4) $i = 24 [String]$Chars = 'BCDFGHJKMPQRTVWXY2346789' do { $Current = 0 $j = 14 do { $Current = $Current * 256 $Current = $Key[$j + $KeyOffset] + $Current $Key[$j + $KeyOffset] = [math]::Floor([double]($Current / 24)) $Current = $Current % 24 $j = $j - 1 } while ($j -ge 0) $i = $i - 1 $KeyOutput = $Chars.SubString($Current, 1) + $KeyOutput $Last = $Current } while ($i -ge 0) $KeyPart1 = $KeyOutput.SubString(1, $Last) $KeyPart2 = $KeyOutput.SubString(1, $KeyOutput.Length - $Last) $ProductKey = $KeyPart1 + '-' + $KeyPart2 -replace '(.{5})','$1-' $ProductKey = $ProductKey.TrimEnd('-') return $ProductKey } $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" $DigitalID = (Get-ItemProperty -Path $RegPath).DigitalProductId Get-OSDigitalID $DigitalID }
使用小贴士
- 建议以管理员身份打开PowerShell,避免权限不足的问题
- 将上述代码粘贴到PowerShell窗口执行后,直接输入
Get-WindowsProductKey命令,就能得到当前系统的Windows产品密钥
这个脚本的核心逻辑是读取注册表中存储的二进制数字产品ID,通过字符映射和进制转换,把它转换成我们熟悉的「XXXXX-XXXXX-XXXXX-XXXXX-XXXXX」格式的产品密钥,适配多数主流Windows版本。
备注:内容来源于stack exchange,提问作者Pendraig
相关产品推荐
相关产品推荐

