Windows 10 上的 Windows 许可证密钥在哪里?

Windows 10 上的 Windows 许可证密钥在哪里?

我买了一台新笔记本电脑;它附带了现有的 Windows 安装,但我想将当前的备份迁移到新机器上。我dd将新机器的分区迁移到外部驱动器:

/dev/nvme0n1p1
/dev/nvme0n1p2
/dev/nvme0n1p3
/dev/nvme0n1p4

然后将我当前的分区移到新机器上。接下来是一场中等规模的噩梦。新机器可以启动,但无法识别无线网络驱动程序,后来发现(据我所知)无法安装它们。我尝试过:

  • 从控制台启动并运行:

    sfc /scannow
    chkdsk C: /f /r /x
    

    两者似乎都已成功完成,但现在机器会陷入启动修复循环。

  • 我尝试重置机器(同时保留我的文件),但中途失败了。

  • 现在机器仍然卡在循环中,我决定尝试使用可启动的 Windows 10 进行外部修复图像。我可能需要新机器的 Windows 10 密钥。我不确定它是存储在 BIOS 中(它预装了 Windows 10)还是存储在分区的某个地方。

从 Linux 映像启动时,如何从分区中获取密钥(如果有的话)?

答案1

如果 Windows 10 曾在这台计算机上激活过,那么 Microsoft 激活服务器现在会使用其硬件指纹来记住它。

在此计算机上再次安装 Windows 10 不会有问题,并且激活将自动进行。您无需搜索密钥。

答案2

我很可能需要新机器的 Windows 10 密钥。

您无需手动输入许可证密钥。OEM 许可证密钥嵌入在您的 BIOS 中,Windows 会自动检测。

我个人会完全全新安装 Windows 10,然后手动重新安装应用程序并从备份中导入数据。这将是一个非常快速的过程,并将保证系统稳定。

在执行全新安装使用 4+ GB 的闪存驱动器,Windows 将几乎立即自动在线激活。

OEM PC 制造商(例如制造 OP 电脑的制造商)与 Microsoft 合作将许可证密钥嵌入 BIOS,这就是 Windows 能够自行激活的原因,即使您在将新 PC 连接到互联网之前清除了所有内容以全新安装 Windows。激活后,Microsoft 的激活服务器将然后但他们之前并不知道计算机的硬件指纹。但是,他们确实识别 OEM 许可证密钥。

在此处输入图片描述

以下是我在自己的电脑上运行此工具时发生的情况,由于这台电脑是我自己组装的,并且使用了常规零售密钥,因此 BIOS 中没有嵌入的 Windows 10 许可证密钥:

在此处输入图片描述

答案3

您可以使用以下脚本存储为脚本2

Option Explicit
Dim objshell,path,DigitalID, Result
Set objshell = CreateObject("WScript.Shell")
'Set registry key path
Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
'Registry key value
DigitalID = objshell.RegRead(Path & "DigitalProductId")
Dim ProductName,ProductID,ProductKey,ProductData
'Get ProductName, ProductID, ProductKey
ProductName = "Product Name: " & objshell.RegRead(Path & "ProductName")
ProductID = "Product ID: " & objshell.RegRead(Path & "ProductID")
ProductKey = "Installed Key: " & ConvertToKey(DigitalID)
ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
'Show messbox if save to a file
If vbYes = MsgBox(ProductData & vblf & vblf & "Save to a file?", vbYesNo + vbQuestion, "BackUp Windows Key Information") then
Save ProductData
End If
'Convert binary to chars
Function ConvertToKey(Key)
Const KeyOffset = 52
Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
'Check if OS is Windows 8
isWin8 = (Key(66) \ 6) And 1
Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
i = 24
Maps = "BCDFGHJKMPQRTVWXY2346789"
Do
Current= 0
j = 14
Do
Current = Current* 256
Current = Key(j + KeyOffset) + Current
Key(j + KeyOffset) = (Current \ 24)
Current=Current Mod 24
j = j -1
Loop While j >= 0
i = i -1
KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
Last = Current
Loop While i >= 0

If (isWin8 = 1) Then
keypart1 = Mid(KeyOutput, 2, Last)
insert = "N"
KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then KeyOutput = insert & KeyOutput
End If
ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)
End Function
'Save data to a file
Function Save(Data)
Dim fso, fName, txt,objshell,UserName
Set objshell = CreateObject("wscript.shell")
'Get current user name
UserName = objshell.ExpandEnvironmentStrings("%UserName%")
'Create a text file on desktop
fName = "C:\Users\" & UserName & "\Desktop\WindowsKeyInfo.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.CreateTextFile(fName)
txt.Writeline Data
txt.Close
End Function

这将为您提供产品名称、产品 ID 和安装密钥。

答案4

我总是去 Belarc.com 下载并运行顾问。这可以找到 PC 上的每个密钥代码。

相关内容