Produkt-Keys und Lizenzen unter Windows auslesen - so geht's

Es ist nicht einfach, an den Product Key von Office zu kommen. Erst recht, wenn man auf Drittanbieter-Programme verzichten möchte und man sich der Tatsache stellen muss, dass man per Eingabeaufforderung (cmd) nichts erreichen kann. Stattdessen müssen wir uns der neuen PowerShell bedienen.

Für den Auslesevorgang muss zunächst der normale Editor geöffnet werden. Diesen findest du ganz einfach per Suchfunktion von Windows. Kopiere folgenden Quellcode in das Editor-Fenster:

[code lang="php"]

function Get - MSOfficeProductKey
{
    param([string[]]$computerName = ".") $product = @() $hklm = 2147483650$path = "SOFTWARE\Microsoft\Office"foreach ($computerin $computerName)
    {
        $wmi = [WMIClass]"\\$computer\root\default:stdRegProv"$subkeys1 = $wmi . EnumKey($hklm, $path) foreach ($subkey1in $subkeys1 . snames)
        {
            $subkeys2 = $wmi . EnumKey($hklm, "$path\$subkey1") foreach ($subkey2in $subkeys2 . snames)
            {
                $subkeys3 = $wmi . EnumKey($hklm, "$path\$subkey1\$subkey2") foreach ($subkey3in $subkeys3 . snames)
                {
                    $subkeys4 = $wmi . EnumValues($hklm, "$path\$subkey1\$subkey2\$subkey3") foreach ($subkey4in $subkeys4 . snames)
                    {
                        if ($subkey4 - eq"digitalproductid")
                        {
                            $temp = "" | selectComputerName, ProductName, ProductKey $temp . ComputerName = $computer$productName = $wmi . GetStringValue($hklm, "$path\$subkey1\$subkey2\$subkey3", "productname") $temp . ProductName = $productName . sValue $data = $wmi . GetBinaryValue($hklm, "$path\$subkey1\$subkey2\$subkey3", "digitalproductid") $valueData = ($data . uValue) [52..66]
                            # decrypt base24 encoded binary data
                            $productKey = ""$chars = "BCDFGHJKMPQRTVWXY2346789"for ($i = 24;$i - ge0;$i--)
                            {
                                $r = 0for ($j = 14;$j - ge0;$j--)
                                {
                                    $r = ($r * 256) - bxor $valueData[$j]$valueData[$j] = [math]::Truncate($r / 24) $r = $r % 24
                                }
                                $productKey = $chars[$r] + $productKeyif (($i % 5) - eq0 - and $i - ne0)
                                {
                                    $productKey = "-" + $productKey
                                }
                            }
                            $temp . ProductKey = $productKey$product += $temp
                        }
                    }
                }
            }
        }
    }
    $product
}

[/code]

Nun muss die Datei als office.ps1 auf dem Desktop gespeichert werden. Kleiner Tipp: Setze den Dateinamen im Speicherndialog in Anführungszeichen, also „office.ps1“. Dadurch wird kein ungewolltes .txt mit angehängt.

Als nächstes brauchst du die Bit-Version von deinem Office. Sollte diese dir nicht bekannt sein, dann öffne z.B. Word, klicke oben links auf Datei, danach auf Konto und anschließend auf Info über Word (bei Office 2013). Dieser Pfad kann je nach Office-Version abweichen. Im erscheinenden Fenster sollte im oberen Teil ersichtlich sein, ob es sich um ein 32-Bit oder ein 64-Bit Office handelt.

Suche anschließend mit der Suchfunktion von Windows nach powershell. Bei einem 64-Bit Office klickst du mit der rechten Maustaste auf den Eintrag Windows PowerShell und wählst Als Administrator ausführen aus. Bei einem 32-Bit Office nimmst du den Eintrag Windows PowerShell (x86) und startest diesen als Administrator.

Setze nun im erscheinenden blauen Fenster folgenden Befehl ab:
Set-ExecutionPolicy RemoteSigned

Danach rufst du das gespeicherte Skript über folgendes Kommando auf. Beachte, dass du vorher deinen eigenen Benutzernamen (z.B. Lisa) anstelle von %Nutzer% einsetzen musst (z.B. C:\Users\Lisa\Desktop\…).
Import-Module C:\Users\%Nutzer%\Desktop\office.ps1; Get-MSOfficeProductKey

Glückwunsch! Der Product Key sollte dir nun angezeigt werden.