How to View Your Windows 10 Product Key Using Script or Command-line

There are many tools to extract the Product Key from a live system or from the registry hive of an offline computer. Additionally, here is a neat little Vbscript that gets the Product Key of your current Windows installation–no third-party program required. The script works on Windows 7, 8 and Windows 10.

View Windows 10 Product Key

Method 1: Using WMI command-line or PowerShell

Use the following WMI command-line to fix the product key of your Windows installation.

wmic path softwarelicensingservice get OA3xOriginalProductKey

This method retrieves the activation key stored in the UEFI/BIOS of your computer.

Note that you’ll need to run the above command from an elevated/admin Command Prompt window.

wmic path softwarelicensingservice get OA3xOriginalProductKey

Or, if you’re using PowerShell, run this command from an admin PowerShell window to know the product key:

(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey

In some systems, the above commands would output the caption OA3xOriginalProductKey and blank rows beneath, showing no product key. This happens if the device doesn’t have an embedded activation/product key.

If the device has a firmware-embedded activation key, it will be displayed in the output. If the output is blank, the device does not have a firmware embedded activation key. Most OEM-provided devices designed to run Windows 8 or later will have a firmware-embedded key.



Method 2: Using Script

Important: Note that the following method simply decodes the DigitalProductId registry value to get the retail product key. The key retrieved using this method could either be the auto-generated generic Windows 10 key (for systems upgraded from Windows 7 or 8 under digital entitlement). It could also be the retail edition key (if you bought the license earlier) you entered manually during Windows 10 setup. So, if you’re using Windows 10, it’s advisable to give priority to the 1st method.

Copy the following code to Notepad and save the file as GetProductKey.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

Source: Retrieve Windows Product Key · GitHub

Double-click to run the script to find out the Product Key of your Windows installation.

vbscript view product key windows 10
Product Key retrieved using Vbscript

That’s it!


One small request: If you liked this post, please share this?

One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:
  • Pin it!
  • Share it to your favorite blog + Facebook, Reddit
  • Tweet it!
So thank you so much for your support, my reader. It won't take more than 10 seconds of your time. The share buttons are right below. :)

About the author

Ramesh Srinivasan founded Winhelponline.com back in 2005. He is passionate about Microsoft technologies and he has been a Microsoft Most Valuable Professional (MVP) for 10 consecutive years from 2003 to 2012.

1 thought on “How to View Your Windows 10 Product Key Using Script or Command-line”

Leave a Comment