Как найти лицензионный ключ с CMD или powershell, не обновляя powershell до версии 3.0

287
Filip Cieślik

У меня проблема, потому что я пытаюсь развернуть скрипт, в котором перечислены основные данные ПК, но, к сожалению, я не могу получить лицензионный ключ. Все компьютеры в компании (кроме IT) используют Windows 7 Pro и имеют powershell v 2.0. Мне нужно получить лицензионный ключ, но не имею никаких идей. Я попытался пойти cmd, а затем "Wmic Path SoftwareLicensingService получить OA3xOriginalProductKey", но это не работает. Предложения?

-3
но `wmic` - это не функция PowerShell, это [внешняя команда Windows] (https://www.computerhope.com/wmic.htm). Вы можете запустить его из командной строки `cmd.exe` .... Что вы на самом деле видите, когда запускаете эту команду? Mokubai 5 лет назад 0
Как я уже писал, я использовал wmic на cmd, а не на powershell. Затем Cmd сообщает неверный узел и имя компьютера. Filip Cieślik 5 лет назад 0
Пожалуйста, будьте более информативным, чем "не работает". Введенная вами команда работает только в Windows 8.0+. Это также не работает, если вы используете розничный или корпоративный лицензионный ключ Ramhound 5 лет назад 1

1 ответ на вопрос

0
postanote

Один из прошлого.

Как получить ключ продукта Windows без использования стороннего программного обеспечения

Если вы потеряли, не можете найти или забыли, где вы хранили ключ продукта вашей ОС Windows 8.1, Windows 8 или Windows 7, не отчаивайтесь. Я хотел бы показать вам простое решение для извлечения ключа продукта из ОС, установленной на вашем ПК, без использования стороннего программного обеспечения.

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 } }