我重新安装了 Windows 7,系统要求我输入产品密钥。但是,唉,我太笨了,我记下了产品 ID,而不是实际的产品密钥。不幸的是,我弄丢了存放密钥的 Windows 外壳,所以我想知道是否有办法仅使用产品 ID 来检索产品密钥?
答案1
产品密钥存储在注册表中,您可以使用以下工具从注册表中检索它:钥匙查找器。请注意,如果您购买了预装的系统,分销商很可能使用他们的初始安装的产品密钥不适用于您的安装媒体。
答案2
产品 ID 与实际产品密钥完全不同,后者无法从前者推导出来。产品 ID 在安装过程中生成,包含 Windows 的确切版本、许可证来源渠道(零售、OEM、MSDN 等)以及区域设置等信息;它用于从 Microsoft 获取技术支持,但不能证明 Windows 许可证的所有权。
如果你备份了之前的 Windows 安装,那么你应该能够使用类似的实用程序神奇的果冻豆钥匙查找器加载正确的注册表配置单元并读取产品密钥。如果不能,那么恐怕你唯一的选择就是购买新的 Windows,因为你已经丢失或删除了之前许可证的所有痕迹。
答案3
您的 OEM 会将 COA 和所需密钥贴到计算机上。正如其他人所指出的,您唯一的选择是购买新的 Windows 7 副本并重新安装,因为零售副本的密钥不适用于 OEM 安装。
答案4
Win 7 将密钥存储在注册表中(“HKLM\SOFTWARE\Microsoft\Windows NT\CurrentrentVersion\DigitalProductId”),但它是二进制的,因此普通“人”不会干扰 MS 追求更多金钱。不过,您可以使用一些 VB 脚本将其取出。
将下面的代码保存为“getkey.vbs”,运行它(双击),然后会弹出一个小消息告诉您您的密钥。使用 CTRL+C 和 CTRL+V 将其粘贴到记事本中。
Set WshShell = CreateObject("WScript.Shell")
registryLocation = '"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentrentVersion\DigitalProductId"';
MsgBox ConvertHumanReadable(WshShell.RegRead(registryLocation))
Function ConvertHumanReadable(Key)
Const KeyOffset = 52
i = 28
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Current = 0
x = 14
Do
Current = Current * 256
Current = Key(x + KeyOffset) + Current
Key(x + KeyOffset) = (Current \ 24) And 255
Current = Current Mod 24
x = x -1
Loop While x >= 0
i = i -1
KeyOutput = Mid(Chars, Current + 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
我不知道 win8 或 win10,但理论上你需要做的就是更改代码中的“registryLocation”值(如果有的话)。