Where is the Windows license key on Windows 10?

29

8

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?

Sebi

Posted 2019-12-01T15:03:38.360

Reputation: 874

4Generally the BIOS setup screen will show you if the machine has an embedded Windows license. – Michael Hampton – 2019-12-02T00:06:55.547

The second answer to this question is duplicated here: https://superuser.com/questions/637971/how-do-i-get-out-my-embedded-windows-8-key-from-a-linux-environment/638033#638033

– Riking – 2019-12-03T02:16:26.653

I got the install...repair infinite loop before but cant' remember how i got around it eventually. – James – 2019-12-03T13:58:42.183

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 – 2019-12-03T14:13:29.503

Answers

50

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.

harrymc

Posted 2019-12-01T15:03:38.360

Reputation: 306 093

3By 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 – 2019-12-02T06:18:02.157

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 – 2019-12-02T06:50:37.533

10Does a change in hardware invalidate your licence? – James – 2019-12-02T14:23:48.277

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 – 2019-12-02T14:42:37.277

1If it hasn't actually been in your BIOS all the time, as seems to be the case with most brand name PCs. – rackandboneman – 2019-12-02T22:20:01.903

1@harrymc I suppose ultimately you're at their mercy anyway as they could update with new licence terms that add new limitations or restrictions. – James – 2019-12-03T16:11:23.093

2I'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 – 2019-12-03T19:37:09.870

@harrymc: A motherboard change used to be almost enough, on its own, to invalidate the licence, but not quite; when did that change? – Sean – 2019-12-04T23:07:23.837

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

Mr Ethernet

Posted 2019-12-01T15:03:38.360

Reputation: 3 563

18Actually, 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. – Mr Ethernet – 2019-12-02T09:54:08.643

Ah - I overlooked the link target - and simply assumed re-installing using what ever recovery media you got – eagle275 – 2019-12-02T10:00:02.033

Both methods are used. Here's a tool you can use to extract an embedded OEM Windows 10 key from the BIOS: https://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.

– Mr Ethernet – 2019-12-02T15:57:47.423

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 – 2019-12-02T21:10:08.000

1I usually wipe the recovery partition! Clean install fixes everything – FreeSoftwareServers – 2019-12-03T07:28:20.010

@rkeet That command may be a bit too broad for many users. Listing the apps it would attempt to uninstall on my PC shows things like Microsoft.WindowsCalculator, Microsoft.GetHelp, Microsoft.RemoteDesktop, Microsoft.MicrosoftEdge, etc; opinions on which of those are "bloat" and which are "what makes Windows useful" would vary. – IMSoP – 2019-12-03T14:38:21.503

@IMSoP very true. In my opinion though, running that and then reinstalling the calculator (and any others needed) beats having to do it all manually. So much crap gets installed out of the box / on updates nowadays. But yes, it's a very rigorous command. :) – rkeet – 2019-12-04T09:07:32.740

Can the embedded product key be used on another computer? – Martin – 2019-12-04T20:39:46.317

@Martin - No; OEM licenses cannot be migrated to new hardware. – Ramhound – 2019-12-26T12:52:11.673

@MrEthernet - Strictly speaking the license key is NOT stored in the BIOS but the ACPI table. – Ramhound – 2019-12-26T12:53:02.563

@rkeet - Running your command would make it impossible to reinstall any of the UWP applications that were uninstalled by the command. Why not just right click and “uninstall” anything you didn’t want? – Ramhound – 2019-12-26T12:55:04.710

@Ramhound why would it make it impossible? It's not a scheduled job, it's run once, namely when you press the "Enter" key. I for one, after installing Windows, run that command and afterwards reinstall just the Calculator app from the Windows Store. No problems. Also: no Candy Crush :) – rkeet – 2019-12-26T15:20:16.017

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.

Roman

Posted 2019-12-01T15:03:38.360

Reputation: 41

1

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

A G S

Posted 2019-12-01T15:03:38.360

Reputation: 46