OEM Product Key from Product ID?

I re-installed my Windows 7 installation and I am being asked for the Product Key. But alas, stupid me, I had jotted down the Product ID and not the actual Product Key. Unfortunately, I lost the Windows case where the key is at, so I am wondering if there is a way to retrieve the product key just by using the Product ID?

2

4 Answers

The product key is stored in the registry, and you can retrieve it from there with tools like KeyFinder. Beware that if you bought the system pre-installed, the distributor most likely used their product key for the initial setup, which won't work with your installation media.

2

The product ID is completely different from the actual product key, and the latter cannot be derived from the former. The product ID is generated during installation and contains information like the exact Windows version, channel the licence came from (retail, OEM, MSDN etc.), as well as the locale; it is used when getting technical support from Microsoft, it does not prove ownership of a Windows licence.

If you backed up your previous Windows installation, then you should be able to use a utility like Magical Jelly Bean Keyfinder to load the correct registry hive and read the product key. If not, then I'm afraid your only option is to buy a new copy of Windows, since you've lost or erased all traces of your previous licence.

1

Your OEM will have affixed the COA with the needed key to the computer. As others have noted, your only real choice is to purchse a new copy of Windows 7 and likely re-install as the key for a retail copy will not work with the OEM install.

Win 7 stores the key in the registry ("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentrentVersion\DigitalProductId"), but it's binary so that your average 'human' doesn't interfere with MS's quest for more money. You can get it out with a little VB Script though.

Save the code below as eg "getkey.vbs", run it (double-click) and a little pop-up msg tells you your key. Use CTRL+C and CTRL+V to paste it into notepad.

 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

I don't know about win8 or win10, but theoretically all you need to do is change the 'registryLocation' value in the code (if at all).

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like