Lesen Sie Ihren Windows-Produktkey mithilfe der PowerShell aus.
Es gibt genügend Tools, die die Seriennummer von Windows auslesen können. Dabei hat Windows selbst ein mächtiges Tool im System, das den korrekten Produktkey auslesen kann – die Windows PowerShell – Bestandteil von Windows 7 und Windows 8/8.1.
Die PowerShell ähnelt der Eingabeaufforderung von Windows, basiert jedoch auf .NET Framework und ist in Windows 7 sowie Windows 8 standardmäßig im Betriebssystem integriert.
Die objektorientierte Shell „powershell.exe“, die im Verzeichnis system32WindowsPowerShellvX.x bzw. syswow64WindowspowershellvX.x liegt, ist viel umfangreicher als die textbasierte Eingabeaufforderung „cmd.exe“ aus dem system32- bzw. syswow64-Verzeichnis. Die Shell enthält unter anderem die grafische Entwicklungsumgebung „PowerShell ISE“ (Integrated Scripting Environment), die das Autovervollständigen von Befehlen mit der TAB-Taste unterstützt, sowie farbliche Syntaxkennzeichnungen, Mehrzeilenbearbeitungen, Sprachen mit Lese-Richtung von rechts nach links und einen Skript-Debugger. Eigentlich ist die PowerShell etwas für Entwickler, Script-Bastler oder Administratoren. Wir möchten aber mit PowerShell nur die Lizenznummer von Windows 7 und Windows 8 auslesen.
NEU: Nur ein Skript für Windows XP, Vista, Windows 7, Windows 8/8.1 und Windows 10 *GetWinKey.ps1 downloaden* (gepackt – Anleitung liegt bei).
Für Windows XP SP3, Vista SP2, Windows Server 2003 SP2 und Windows Server 2008 SP2 bietet Microsoft „Windows PowerShell 2.0“ als Download an.
Sie sollten zuerst die Dateinamenerweiterungen einblenden, damit Sie die Dateiendung sehen können. Unter Windows 7 deaktivieren Sie die Option „Erweiterungen bei bekannten Dateitypen ausblenden“ unter Ordneroptionen – Registerkarte „Ansicht“. Unter Windows 8 finden Sie im Menüband die Option, die Sie aktivieren müssen.
Skripte erlauben
Einfach loslegen geht nicht. Zuerst muss die Sicherheitsrichtlinie von PowerShell gelockert werden, damit die Shell auch Skripte ausführt. Starten Sie dazu Windows PowerShell als Administrator.
In der 64-Bit-Version müssen Sie die gefundene „Windows PowerShell“ – nicht die „Windows PowerShell (x86)“ – als Administrator ausführen.
Geben Sie nun folgenden Befehl ein:
set-executionpolicy remotesigned
Nach Klick auf die [Enter]-Taste wird gefragt, ob Sie die Ausführungsrichtlinie ändern möchten.
Tippen Sie j (für ja) ein und nach erneutem Klick auf die [Enter]-Taste führt die Shell nun Skripte aus.
Um später die alte Sicherheitsrichtlinie wieder zu setzen, geben Sie den folgenden Befehl ein:
set-executionpolicy restricted
Skript zum Auslesen des Produktkeys von Windows erstellen
Erstellen Sie einen Ordner unter C: (zum Beispiel „PowerShellKeySkript„) und öffnen Sie einen Texteditor (Notepad).
Da Windows 8.0/8.1 den Key anders wie seine Vorgänger abspeichert, gibt es zwei verschiedene Scripts:
Für Windows 7
Geben Sie im Notepad für Windows 7 Folgendes ein oder laden Sie sich das Script Win7Key.zip herunter:
function Get-WindowsKey { param ($targets = ".") $hklm = 2147483650 $regPath = "SoftwareMicrosoftWindows NTCurrentVersion" $regValue = "DigitalProductId" Foreach ($target in $targets) { $productKey = $null $win32os = $null $wmi = [WMIClass]"\$targetrootdefault: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" 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-Name -value $target $obj | Add-Member Noteproperty Windows-Edition -value $win32os.Caption $obj | Add-Member Noteproperty Windows-Version -value $win32os.CSDVersion $obj | Add-Member Noteproperty Bit-Version -value $win32os.OSArchitecture $obj | Add-Member Noteproperty Build-Nummer -value $win32os.BuildNumber $obj | Add-Member Noteproperty Lizenznehmer -value $win32os.RegisteredUser $obj | Add-Member Noteproperty Produkt-ID -value $win32os.SerialNumber $obj | Add-Member Noteproperty Produkt-Key -value $productkey $obj } }
Speichern Sie im Notepad über „Datei – Speichern unter“ die Datei im Ordner „PowerShellKeySkript“ als Windows_Key.ps1 ab (NICHT als Windows_Key.ps1.txt). Wechseln Sie im Speichern-Dialog unter Dateityp von „Textdateien (*.txt)“ auf „Alle Dateien (*.*)“.
Für Windows 8/8.1
Hier weicht der Code von dem für Windows 7 ab, so dass sie für Windows 8.0/8.1 bitte diesen Code verwenden und Win8Key.zip herunterladen.
Hinweis: Wer für Windows 8.0 über den Windows Store oder über Windows Update ein Upgrade auf Windows 8.1 durchgeführt hat, findet seinen „Productkey“ im Klartext in der Registry unter
„HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Win8“
als REG_SZ Wert.
Skript zum Auslesen des Keys ausführen
Wenn die Windows_Key.ps1 (Win7) im Ordner „PowerShellKeySkript“ unter C: liegt, geben Sie nun folgenden Befehl ein, ggf. müssen Sie sonst den Pfad ändern:
Import-Module "C:\PowerShellKeySkript\Windows_Key.ps1"; Get-WindowsKey
Dann drücken Sie die [Enter]-Taste.
Für Windows 8 lautet der Befehl dann
Import-Module "C:\PowerShellKeySkript\Win8Key.ps1"
Sie erhalten Informationen über die Windows-Edition, Windows-Version (Service Pack), Bit-Version, Build-Nummer, Lizenznehmer, Produkt-ID und Produktkey.
Hängen Sie bei Windows 7 nach Get-WindowsKey noch den Parameter
Out-File "C:\PowerShellKeySkript\sn.txt"
an, wird eine Textdatei im Ordner „PowerShellKeySkript“ abgelegt.
Beispiel:
Import-Module "C:\PowerShellKeySkript\Windows_Key.ps1"; Get-WindowsKey Out-File "C:\PowerShellKey\Skriptsn.txt"
Wenn Sie das Skript auf einem USB-Stick speichern, können Sie von jedem beliebigen PC den Produktkey auslesen. Auf dem Ziel-Computer muss natürlich Windows PowerShell vorhanden sein und Sie müssen zuerst die Sicherheitsrichtlinie lockern.
Tipp: Auf dieser Seite liefern deutsche PowerShell-Nutzer zahlreiche Tipps und zeigen Beispiele zur Nutzung von PowerShell mit Windows auf.
Das Skript Windows_Key.ps1 funktioniert unter Windows XP, Vista, Windows 7, etc.
Das Skript Win8Key.ps1 funktioniert nur unter Windows 8.0 und Windows 8.1.
Fazit
Eine gute Idee, wenn man das komplizierte, lange Skript besitzt. Die Shell-Befehle selbst sind ja einfach und verständlich.
Das Win8-Skript kann leider nicht den Key von einem vorinstallierten Windows 8, welches im BIOS/EFI den Key hinterlegt hat, auslesen.
Zum Tipparchiv: Produktkey von Windows 8 auslesen
Bildquelle: Microsoft