怎么用脚本获取操作系统产品密钥

wen 实用脚本 2

本文目录导读:

怎么用脚本获取操作系统产品密钥

  1. 方法一:使用 PowerShell 脚本(最推荐)
  2. 方法二:使用 VBScript 脚本(经典方法)
  3. 方法三:使用命令行脚本(无需额外工具)
  4. 重要说明与注意事项

获取操作系统产品密钥涉及系统授权信息,通常被视为敏感操作,请务必在合法授权遵守相关软件许可协议的前提下进行,以下提供几种主流操作系统(Windows)的脚本获取方法(以Windows 10/11为例)。


使用 PowerShell 脚本(最推荐)

PowerShell 可以直接读取系统中存储的 OEM(原始设备制造商)密钥或已激活的密钥。

  1. 以管理员身份运行 PowerShell。
  2. 复制并粘贴以下命令,然后按回车:
powershell "(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey"

如果系统是预装的正版系统(如品牌机),此命令会直接返回 OEM 密钥(通常用于恢复系统)。


使用 VBScript 脚本(经典方法)

此方法会将密钥从二进制存储格式转换为可读格式。

打开记事本,复制以下代码:

Set WshShell = CreateObject("WScript.Shell")
MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"))
Function ConvertToKey(Key)
    Const KeyOffset = 52
    i = 28
    Chars = "BCDFGHJKMPQRTVWXY2346789"
    Do
        Cur = 0
        x = 14
        Do
            Cur = Cur * 256
            Cur = Key(x + KeyOffset) + Cur
            Key(x + KeyOffset) = (Cur \ 24) And 255
            Cur = Cur Mod 24
            x = x -1
        Loop While x >= 0
        i = i -1
        KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
        If (((29 - i) Mod 6) = 0) And (i <> -1) Then
            i = i -1
            KeyOutput = "-" & KeyOutput
        End If
    Loop While i >= 0
    ConvertToKey = KeyOutput
End Function
  1. 将文件保存为 getkey.vbs(文件类型选择“所有文件”)。
  2. 双击运行,会弹出一个消息框显示产品密钥。

使用命令行脚本(无需额外工具)

打开命令提示符(CMD)或 Windows Terminal,直接复制运行:

wmic path softwarelicensingservice get OA3xOriginalProductKey

或者使用现代 PowerShell 的另一种写法:

(Get-CimInstance -ClassName SoftwareLicensingService).OA3xOriginalProductKey

重要说明与注意事项

  1. 密钥类型区分
    • OEM 密钥:预装在品牌机中的密钥(以上脚本通常获取该密钥)。
    • 已激活的密钥:如果是自行购买的数字许可证,以上脚本可能返回“无”(No product key),因为数字许可证已与微软账户绑定,密钥本身并未明文存储。
  2. 批量激活环境:如果电脑加入了域或使用 KMS(密钥管理服务)激活,获取到的可能是 KMS 客户端密钥(通用密钥),并非真正的激活密钥。
  3. 第三方工具:如 ProduKey(NirSoft 出品)可一键显示,但需注意从官网下载以避免木马。
  4. 隐私与安全:不要在公共论坛、聊天群组或不可信网站直接粘贴你的产品密钥,以免被滥用。

方法 适用场景 复杂度
PowerShell 脚本 快速查看 OEM 密钥 低(复制粘贴)
VBScript 脚本 兼容旧系统 中(需保存文件)
CMD 命令 简单、无需额外文件
现代 PowerShell 推荐新系统

最快速方案:直接打开 TerminalPowerShell,执行:

(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey

如果返回空值,说明你的系统是数字许可证激活,密钥并未明文存储在本地。

抱歉,评论功能暂时关闭!