Muchas veces es necesario conocer la clave de producto instalada en nuestro sistema operativo por diferentes motivos. Generalmente acudimos a productos pocos confiables encontrados por Internet y es por eso que en este articulo veremos como conocer el product key mediante un script de powershell.
Para empezar, aquí les paso el script de Powershell necesario para obtener la clave de producto.
function Get-WindowsKey {
## function to retrieve the Windows Product Key from any PC
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
}
}
Para empezar, debemos copiar el codigo y pegarlo en un bloc de notas.
Luego guardamos el archivo como recoverkey.ps1 con el tipo de archivos “Todos los archivos”.
Ahora vamos a iniciar Powershell como administrador. Para ello, buscamos en la Pantalla de Inicio powershell y haciendo un clic con el botón derecho del mouse sobre el icono, seleccionamos “Ejecutar como administrador”.
Confirmamos con Si en el Control de cuentas de usuario.
El próximo paso será cambiar la Execution Policy para poder ejecutar el script que tenemos. Para ello, en la consola de powershell ejecutamos lo siguiente: “Set-ExecutionPolicy RemoteSigned”, sin las comillas. A la consulta que recibimos, confirmamos con la S para cambiar la directiva.
Lo ultimo que debemos realizar es ejecutar el script para conocer la clave del producto. Siguiendo en la consola de Powershell ejecutamos: Import-Module recoverykey.ps1; Get-WindowsKey.
En la siguiente imagen verán que posterior a Import-Module establecimos el path donde se encuentra el script, siendo esto una variable según en donde se encuentre el archivo ps1.
Como vemos, obtenemos el resultado deseado que es la clave de producto, tachada en la imagen por ser un dato privado.
Para la facilidad de los usuarios les dejo ya creado el script para su descarga. http://www.mazzitelli.com.ar/blog/descargas/win0097-RecoveryKey.zip
Espero que les haya sido de utilidad.
Saludos,
Alejandro.
@amazzite
www.mazzitelli.com.ar