So finden Sie den Lizenzschlüssel mit CMD oder Powershell, ohne ein Upgrade von Powershell auf Version 3.0 durchzuführen

402
Filip Cieślik

Ich habe ein Problem, weil ich versuche, ein Skript bereitzustellen, das die wichtigsten Daten von PCs auflistet, aber leider kann ich keinen Lizenzschlüssel von irgendetwas erhalten. Alle Computer im Unternehmen (außer IT) verwenden Windows 7 Pro und verfügen über Powershell Version 2.0. Ich brauche einen Lizenzschlüssel, habe aber keine Ideen. Ich habe versucht, cmd und dann "wmic path softwarelicensingservice get OA3xOriginalProductKey" zu verwenden, aber das funktioniert nicht. Vorschläge?

-3
"wmic" ist jedoch keine PowerShell-Funktion, sondern ein [externer Windows-Befehl] (https://www.computerhope.com/wmic.htm). Sie können es über eine Eingabeaufforderung `cmd.exe` ausführen. Was sehen Sie eigentlich, wenn Sie diesen Befehl ausführen? Mokubai vor 5 Jahren 0
Wie ich schrieb, habe ich wmic bei cmd verwendet, nicht bei Powershell. Cmd sagt dann einen ungültigen Knoten- und PC-Namen. Filip Cieślik vor 5 Jahren 0
Seien Sie bitte beschreibender als "funktioniert nicht". Der von Ihnen ausgegebene Befehl funktioniert nur unter Windows 8.0 und höher. Es funktioniert auch nicht, wenn Sie einen Einzelhandels- oder Volumenlizenzschlüssel verwenden Ramhound vor 5 Jahren 1

1 Antwort auf die Frage

0
postanote

Einer aus der Vergangenheit.

So erhalten Sie den Windows-Produktschlüssel ohne die Verwendung von Software von Drittanbietern

Wenn Sie verloren haben, nicht abrufen oder vergessen können, wo Sie den Produktschlüssel Ihres Betriebssystems Windows 8.1, Windows 8 oder Windows 7 gespeichert haben, verzweifeln Sie nicht. Ich möchte Ihnen eine einfache Lösung zeigen, mit der Sie Ihren Product Key aus dem auf Ihrem PC installierten Betriebssystem extrahieren können, ohne Software von Drittanbietern zu verwenden.

function Get-WindowsKey  { ## function to retrieve the Windows Product Key from any PC ## by Jakob Bindslet (jakob@bindslet.dk) 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 } }