Flash info

Prenez une longueur d'avance avec PowerShell. Faire ce choix c'est anticiper l'avenir des produits Microsoft mais aussi être plus performant dans son travail quotidien d'admin système.

 
Accueil arrow Bibliothèque de scripts arrow Système arrow Retrouver la clé produit de Windows
Retrouver la clé produit de Windows
Écrit par Arnaud Petitjean [MVP]   
09-02-2009
xpprokey281x152.jpg 

Si vous avez perdu la clé produit de votre système ou si vous souhaitez simplement faire l'inventaire de toutes vos licences sur votre parc de machines Windows, alors vous serez heureux de découvrir ce script.

Ce script est issu d'une discussion du forum (voir le fil original). Si vous souhaitez des explications sur l'algorithme employé, alors rendez-vous chez JC Bellamy.

 

 

##########################################################
#
# Get-ProductKey.ps1
#     Description : récupère la clé produit de Windows
#
#    http://www.powershell-scripting.com/
#    La communauté PowerShell francophone
#
# Usage : PS > ./Get-ProductKey.ps1
##########################################################

# Création de la table de conversion base 24
$map="BCDFGHJKMPQRTVWXY2346789"

# Lecture de la clé de registre
$value = (get-itemproperty "HKLM:\\SOFTWARE\Microsoft\Windows NT\CurrentVersion").digitalproductid[0x34..0x42]

# Conversion des valeurs en Hexa pour afficher le Raw Key $hexa = ""
$value | foreach {
  $hexa = $_.ToString("X2") + $hexa
}
Write-Output "Raw Key Big Endian: $hexa"

# Calcul du Product Key
$ProductKey = ""
for ($i = 24; $i -ge 0; $i--) {
  $r = 0
  for ($j = 14; $j -ge 0; $j--) {
    $r = ($r * 256) -bxor $value[$j]
    $value[$j] = [math]::Floor([double]($r/24))
    $r = $r % 24
  }
  $ProductKey = $map[$r] + $ProductKey
  if (($i % 5) -eq 0 -and $i -ne 0) {
    $ProductKey = "-" + $ProductKey
  }
}
Write-Output "Product Key: $ProductKey"

Exemple d'utilisation :

PS > ./Get-ProductKey
Raw Key Big Endian: 04ED741D7F2BAC8E4E317B4A728585
Product Key: 4GPTT-6RYC4-F4GJK-KG77H-G3TT2

Dernière mise à jour : ( 26-06-2009 )
 
© 2019 PowerShell-Scripting.com