For a long time Windows PCs (OEMs) came with a product key sticker that was often placed outside of the machine or with your computer's manuals, but now manufacturers are storing this license within the machine's UEFI/BIOS and the information is automatically retrieved and applied when reinstalling the operating system. Certainly a better approach overall.
Additionally, Windows 10 introduced a "Digital Entitlement" element to Microsoft's license which links your Windows key to an ID generated based on your PC's hardware. But because your hardware can significantly change if you upgrade your hardware, this entitlement was expanded to become a "Digital License" when 2016's Anniversary Update (1607) arrived.
This means your Windows 10 license now ties Windows keys to Microsoft accounts, letting you activate a copy of the operating system simply by logging in with valid online credentials.
So, if you have a newer Windows PC or you already log in using your Microsoft account, you generally shouldn't have to search for your original Windows 10 key. We will explain that in better detail in a minute.
There may be other scenarios where you may still want to manually find a Windows key stored in your UEFI/BIOS, or prevent this key from automatically being applied during installation. Not to mention that different conditions apply for non-OEM retail keys, as well as those given to people who upgraded to Windows 10 for free. And in a worst case scenario, you might be trying to find the license for a copy of Windows that no longer boots.
Windows OEM keys vs. retail vs. free upgrade
- OEM keys are shipped with a specific computer and can't be transferred to another machine. Again, these should be auto-applied from your UEFI/BIOS when reinstalling Windows on a modern boxed PC, but you can also retrieve them manually.
- Retail keys are purchased directly from Microsoft, Amazon etc. -- these can be transferred to another machine and that process should happen automatically for a digital license, though you can also "uninstall" a Windows key from a given PC.
- Those who upgraded to Windows 10 for free from Windows 7 and 8 don't have a unique Windows 10 key. This can only be transferred to one other machine (not if you upgraded from an OEM key). Free upgrade licenses are a digital entitlement.
Do I have a digital license?
The Windows 10 Settings app has a page for displaying your activation information, including whether you have a digital license, though your key isn't shown here:
Go to: Settings > Update & Security > Activation
If you have a digital license, you should see "Windows is activated with a digital license" or "Windows is activated with a digital license linked to your Microsoft account."
You can also link a Microsoft account to a Windows license by clicking "add a Microsoft Account" on the bottom of the same page and providing your login information.
Find your key from inside Windows
Entering the following lines into an admin Command Prompt or PowerShell worked to display the OEM key embedded in our system's UEFI/BIOS. However, these commands didn't return any keys on other two machines we used for testing despite Windows 10 being activated.
wmic path softwarelicensingservice get OA3xOriginalProductKey
powershell "(Get-WmiObject -query ‘select * from SoftwareLicensingService’).OA3xOriginalProductKey"
There's also a commonly cited Visual Basic script that retrieves registry-based Windows keys (not those stored in the UEFI/BIOS). You can download the script here. Copy this text and paste it into Notepad, saving it as a .vbs file. Then double-click to launch the file.
Third-party tools that find Windows keys
We downloaded a variety of utilities that can retrieve retail keys from the Windows registry as well as those that are UEFI/BIOS-bound. In testing, some of the applications found both the registry and UEFI/BIOS keys, while others only worked for one or the other:
Nirsoft ProduKey - Found both the embedded OEM key as well as the retail key from our currently running copy of Windows. Also includes keys for many other applications such as Microsoft Office and Adobe products (strangely, Internet Explorer was also included in our results, though no key was provided). As with some of the other tools on this list, ProduKey can load Windows keys from external sources/drives.
ShowKey Plus - This utility also found both our retail and OEM keys, and can load the SOFTWARE hive file from another Windows installation.
Winkeyfinder - Found our retail key but Dell's UEFI OEM key wasn't displayed.
Magical Jelly Bean KeyFinder - Returned the retail key but not the UEFI OEM key. This software can also load registry keys from Windows installations on other drives (tools > Load Hive). Listed our Windows 10 Pro install as Enterprise.
Find your key from outside Windows
If you can't boot into Windows and want to retrieve that key, you can still access this data from an external environment such as a Windows To Go drive, or by attaching your non-booting Windows drive to another machine.
Note that if you're recovering the key from a Windows To Go workspace, the non-booting drive with your Windows key is offline by default and will have to be enabled in Disk Management (diskmgmt.msc). Right-click the drive and set it as "online." As mentioned above, several of the third-party tools that we already listed will let you load the registry hive file from another Windows installation.
You can also navigate to your license directly from the Windows registry (regedit via Start) though the key is not in plain text. Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ and look for "DigitalProductId" in the right panel.
This registry hive is stored in a file on your OS drive at Windows\System32\Config -- look for the file named SOFTWARE.
In testing, both ProduKey and ShowKey Plus loaded the SOFTWARE hive file and displayed the key for an external Windows installation via Windows To Go. Also note that ProduKey can search for Windows keys on computers at remote domains among other locations, and that the Windows Registry Editor can load hive files from other installations:
- Open the Windows Registry Editor (enter regedit via Start)
- Click HKEY_LOCAL_MACHINE so it's selected
- Click File > Load Hive and navigate to the SOFTWARE file in Windows\System32\Config on your other drive
- Enter a name for this external hive file
- The hive should appear as a sub-entry in HKEY_LOCAL_MACHINE
- To unload the hive, select the name you chose and go to File > Unload Hive
Retrieving the UEFI/BIOS-bound Windows key via Linux was as simple as entering the following line in a terminal, though we couldn't find any GUI applications like ProduKey or ShowKey Plus that would retrieve the license from a registry hive file:
sudo strings /sys/firmware/acpi/tables/MSDM | tail -1
The command-line tool Chntpw can be installed on Linux and is able to load Windows registry files. This software didn't return a valid key when decoding the product ID within the tool, though if you had to you could extract the hex data and decode that elsewhere.
Here's how to load a Windows registry file in Chntpw from a Linux terminal and then display the hex value for the key in that hive (use dpi instead of hex to decode the key within chntpw, though again, this didn't give us a valid key):
chntpw -e YourDrive/Windows/System32/config/SOFTWARE
hex Microsoft\Windows NT\CurrentVersion\DigitalProductId
Although it's convenient to have your Windows key automatically detected from the UEFI/BIOS, you'll have to tweak the Windows installation media if you want to use another license.
Open the installation media in File Explorer, browse to the Sources folder and create a new text file named PID.txt in the Sources folder. In PID.txt, you want the following text, where the Xs correspond to your license key.
Uninstalling a retail key from a given machine is also possible and while this doesn't automatically update the information on Microsoft's servers, it will prevent future conflicts from multiple machines using the same key.
Enter the following line in an administrator Command Prompt to uninstall the currently active product license and clear that key from the Windows registry (here are more slmgr commands):
As a final anecdote from testing, when we uninstalled and cleared the key from our Windows installation, we were able to reactivate that copy of Windows simply by clicking "Troubleshoot" on the activation page.
One click and that wizard retrieved our digital license, despite not being linked to a Microsoft account. And again, this was for a retail key that was originally used on a desktop which was cloned as a Windows To Go drive and plugged into another machine with a different hardware profile. In other words, with luck, Microsoft's activation is forgiving enough and you should have no issues validating your OS license on a new machine or after several hardware changes.