32

I got a new laptop; it came with an existing Windows installation, but I wanted to migrate my current backup to the new machine. I dd-ed the new machine's partitions to an external drive:

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

and afterwards move my current partitions to the new machine. What followed was a medium-sized nightmare. The new machine would boot, but the wireless network drivers were not recognized and later found out (to the best of my knowledge) they couldn't be installed. I tried:

  • booting from the console and running:

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

    both seemed to have completed successfully, but now the machine would get stuck in a startup repair loop.

  • I tried resetting the machine (whilst keeping my files), but this failed halfway through.

  • now the machine's still stuck in the loop and decided to try and repair it externally using a bootable Windows 10 image. It's likely that I'll need the new machine's Windows 10 key. I'm not sure if it's stored in the BIOS (it came with Windows 10 preinstalled) or somewhere on the partitions.

How can I get the key from the partitions (if it's there at all) while booting from a Linux image?

4
  • 4
    Generally the BIOS setup screen will show you if the machine has an embedded Windows license. Dec 2, 2019 at 0:06
  • The second answer to this question is duplicated here: superuser.com/questions/637971/…
    – Riking
    Dec 3, 2019 at 2:16
  • I got the install...repair infinite loop before but cant' remember how i got around it eventually.
    – James
    Dec 3, 2019 at 13:58
  • I've made an SSD upgrade once and created an image of the initial drive through dd. After moving that image onto the new drive I got into the loop. I picked the windows repair option and afterwards it booted normally. This time however I moved the same image onto a new machine and drivers stopped working at random, would occasionally boot into the BIOS, etc.
    – Sebi
    Dec 3, 2019 at 14:13

4 Answers 4

51

If Windows 10 was ever activated on this computer, then it is now remembered by the Microsoft activation servers using its hardware fingerprint.

There will be no problem installing Windows 10 again on this computer, and activation will be automatic. You do not need to search for the key.

8
  • 3
    By hardware fingerprint are you referring to the fact that the windows 10 license key is now stored on the motherboard? If so it is unclear how this would work with non OEM devices which come with no OS installed.
    – Qwertie
    Dec 2, 2019 at 6:18
  • 16
    It is stored on the servers of Microsoft, not on your computer. It's also no longer a serial, but rather a hash of the attributes of your hardware. This is called digital entitlement. Serials are only used when one buys a separate Windows license, but once the computer is activated it then passes to digital entitlement.
    – harrymc
    Dec 2, 2019 at 6:50
  • 10
    Does a change in hardware invalidate your licence?
    – James
    Dec 2, 2019 at 14:23
  • 9
    @James: Depends on variables that are not published. A motherboard change will invalidate it, but a replaced network card by itself will not, and the same for a replaced system disk.
    – harrymc
    Dec 2, 2019 at 14:42
  • 2
    I've got a hunch that it's computed once and stored on the BIOS upon install/first boot? This is great since you can flash that BIOS onto a USB and have more than one legitimate copy of windows, especially if you're behind a NAT (all machines can have a duplicate preflashed key provided, of course, that win doesn't send any other uniquely identifiable info))
    – Sebi
    Dec 3, 2019 at 19:37
33

It's likely that I'll need the new machine's Windows 10 key.

You won't need need to manually enter the license key. The OEM license key is embedded in your BIOS and will be detected automatically by Windows.

I would personally just do a completely clean install of Windows 10 and then manually reinstall the applications and import the data from your backup. This will be a very quick process and will guarantee a stable system.

After performing a clean install using a 4+ GB flash drive, Windows will automatically activate itself online almost immediately.

OEM PC manufacturers, such as the one that made the OP's computer, work with Microsoft to embed the license key in the BIOS, which is how Windows is able to activate itself even if you wiped your new PC to do a clean install of Windows before connecting it to the Internet. After activation, Microsoft's activation servers will then know the hardware fingerprint of the computer but not before. They do, however, recognize the OEM license key.

enter image description here

Here's what happens when I run this tool on my PC, which does not have an embedded Windows 10 license key in the BIOS as I built the PC myself and used a regular retail key:

enter image description here

12
  • 18
    Actually, quite the opposite! This is a completely clean install rather than a factory reset. You would remove all of the bloatware with this procedure. Notice how the words "clean install" are a link to the Windows 10 Media Creation Tool. Dec 2, 2019 at 9:54
  • Ah - I overlooked the link target - and simply assumed re-installing using what ever recovery media you got
    – eagle275
    Dec 2, 2019 at 10:00
  • Both methods are used. Here's a tool you can use to extract an embedded OEM Windows 10 key from the BIOS: neosmart.net/OemKey "If you need to retrieve the OEM-embedded product key from your PC, you can use the NeoSmart OEM product key utility to extract and show the product key programmed into your PC. Absolutely no user interaction is required, you just run the download and it immediately displays the detected product key... The key is now embedded in BIOS." This embedded key is why you can safely wipe a new PC before it goes online to talk to MS's activation servers. Dec 2, 2019 at 15:57
  • To add to MrEthernets clean install @eagle275 -> after installing Windows you could run Get-AppXPackage | where-object {$_.name –notlike “*store*”} | Remove-AppxPackage in an Administrator level Powershell. It removes all apps installed via the Windows Store (as such, not recommended on systems already actively in use). Recommend that anyone run this after they (clean!) install Windows (and after any major Windows Update if you don't use Store apps).
    – rkeet
    Dec 2, 2019 at 21:10
  • 1
    I usually wipe the recovery partition! Clean install fixes everything Dec 3, 2019 at 7:28
4

You can use the following script stored as script2.vbs

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

This will give you the product name, product id and installed key.

0

I've always gone to Belarc.com, downloading & running the advisor. This finds EVERY key code on the PC.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .