Product Key von Office per PowerShell auslesen

Hinweis 2020-12-30: Bei neueren Office-Versionen kann der Product Key eventuell nicht mehr ausgelesen werden, insbesondere, wenn dieser mit einem Microsoft-Konto verknüpft ist.

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:

function Get-MSOfficeProductKey {
param(
[string[]]$computerName = "."
)
$product = @()
$hklm = 2147483650
$path = "SOFTWARE\Microsoft\Office"
foreach ($computer in $computerName) {
$wmi = [WMIClass]"\\$computer\root\default:stdRegProv"
$subkeys1 = $wmi.EnumKey($hklm,$path)
foreach ($subkey1 in $subkeys1.snames) {
$subkeys2 = $wmi.EnumKey($hklm,"$path\$subkey1")
foreach ($subkey2 in $subkeys2.snames) {
$subkeys3 = $wmi.EnumKey($hklm,"$path\$subkey1\$subkey2")
foreach ($subkey3 in $subkeys3.snames) {
$subkeys4 = $wmi.EnumValues($hklm,"$path\$subkey1\$subkey2\$subkey3")
foreach ($subkey4 in $subkeys4.snames) {
if ($subkey4 -eq "digitalproductid") {
$temp = "" | select ComputerName,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 -ge 0; $i--) {
$r = 0
for ($j = 14; $j -ge 0; $j--) {
$r = ($r * 256) -bxor $valueData[$j]
$valueData[$j] = [math]::Truncate($r / 24)
$r = $r % 24
}
$productKey = $chars[$r] + $productKey
if (($i % 5) -eq 0 -and $i -ne 0) {
$productKey = "-" + $productKey
}
}
$temp.ProductKey = $productKey
$product += $temp
}
}
}
}
}
}
$product
}

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. Max) anstelle von %Nutzer% einsetzen musst (z.B. C:\Users\Max\Desktop\…).

Import-Module C:\Users\%Nutzer%\Desktop\office.ps1; Get-MSOfficeProductKey

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

Du willst auch deinen Windows-Key per Kommandozeile auslesen? Dann lies hier weiter!

Quelle

10 Kommentare

  1. […] Auch der Office-Key lässt sich mit Windows-Mitteln auslesen! Erfahre hier mehr darüber. […]

  2. […] Erfahre hier, wie du deinen Office-Key mit Boardmitteln von Windows auslesen kannst! […]

  3. „Lies“, nicht „lese“

  4. […] Weitere Artikel Dienste per PowerShell neu starten Windows: Automatisches Anmelden aktivieren (Autologin / Autologon) Product Key von Office per PowerShell auslesen […]

  5. Does not work…

  6. Hallo neim ausführen der Befehl set-executionpolicy remotesignet soll man dann auswählen J, A , N ,K ,H?? ist nicht klar was man tun soll wenn man den Befehl eingibt .Soll man mit ok bestätigenm oder soll man direkt den andere Befehl eingeben ?danke
    ich bekomme das hier :
    PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned

    Ausführungsrichtlinie ändern
    Die Ausführungsrichtlinie trägt zum Schutz vor nicht vertrauenswürdigen Skripts
    bei. Wenn Sie die Ausführungsrichtlinie ändern, sind Sie möglicherweise den im
    Hilfethema „about_Execution_Policies“ unter
    „https:/go.microsoft.com/fwlink/?LinkID=135170“ beschriebenen Sicherheitsrisiken
    ausgesetzt. Möchten Sie die Ausführungsrichtlinie ändern?
    [J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe

    Was soll ich auswählen ?

  7. Bei mir wird gar nichts angezeigt. Soll doch eh ab Office 2013 nicht mehr funktionieren sich den Key vollständig anzeigen zu lassen.

  8. Funktioniert bei mir auch nicht, das script läuft durch ohne Fehlermeldung ohne irgendwas anzuzeigen 🙁

Schreibe einen Kommentar