Last active
May 15, 2021 15:16
-
-
Save elreydetoda/2354f12a1ec1e06a22d9fbd3398c5d07 to your computer and use it in GitHub Desktop.
Get the Product key from windows
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# how to use this script | |
# iex (new-object system.net.webclient).DownloadString("https://git.io/JsnxS") | |
# if that fails, it is probably something with the tls level ( took from chocolatey install ) | |
# [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072 | |
# then run the iex command again | |
# src: https://nedimmehic.org/2017/02/17/how-to-find-windows-product-key-allversions-of-windows/ | |
function Get-WindowsKey { | |
## function to retrieve the Windows Product Key from any PC | |
## by Nedim Mehic | |
param ($targets = ".") | |
$hklm = 2147483650 | |
$regPath = "Software\Microsoft\Windows NT\CurrentVersion" | |
$regValue = "DigitalProductId" | |
Foreach ($target in $targets) { | |
$productKey = $null | |
$win32os = $null | |
$wmi = [WMIClass]"\\$target\root\default:stdRegProv" | |
$data = $wmi.GetBinaryValue($hklm,$regPath,$regValue) | |
$binArray = ($data.uValue)[52..66] | |
$charsArray = "B","C","D","F","G","H","J","K","M","P","Q","R","T","V","W","X","Y","2","3","4","6","7","8","9" | |
## decrypt base24 encoded binary data | |
For ($i = 24; $i -ge 0; $i--) { | |
$k = 0 | |
For ($j = 14; $j -ge 0; $j--) { | |
$k = $k * 256 -bxor $binArray[$j] | |
$binArray[$j] = [math]::truncate($k / 24) | |
$k = $k % 24 | |
} | |
$productKey = $charsArray[$k] + $productKey | |
If (($i % 5 -eq 0) -and ($i -ne 0)) { | |
$productKey = "-" + $productKey | |
} | |
} | |
$win32os = Get-WmiObject Win32_OperatingSystem -computer $target | |
$obj = New-Object Object | |
$obj | Add-Member Noteproperty Computer -value $target | |
$obj | Add-Member Noteproperty Caption -value $win32os.Caption | |
$obj | Add-Member Noteproperty CSDVersion -value $win32os.CSDVersion | |
$obj | Add-Member Noteproperty OSArch -value $win32os.OSArchitecture | |
$obj | Add-Member Noteproperty BuildNumber -value $win32os.BuildNumber | |
$obj | Add-Member Noteproperty RegisteredTo -value $win32os.RegisteredUser | |
$obj | Add-Member Noteproperty ProductID -value $win32os.SerialNumber | |
$obj | Add-Member Noteproperty ProductKey -value $productkey | |
$obj | |
} | |
} | |
Get-WindowsKey |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment