7 способов, как узнать ключ установленной Windows 10 — Айше Джемилева
Процесс активации операционной системы Windows 10 производится всегда автоматически. Поэтому в данном случае вовсе не обязательно вводить лицензионный ключ вручную. Исключением могут стать случаи с загрузкой обновлений или сменой внутренних комплектующих элементов. Я подробно расскажу, когда и какой ключ необходимо искать, и как это сделать с помощью системных утилит или сторонних приложений.
Оба ключа предназначены для активации операционной системы Windows. Разница состоит лишь в том, когда она была проведена. OEM Key – он же ключ продукта, вшит в материнскую плату компьютера/ноутбука. Получается, что при покупке компьютера система уже заранее была установлена и активирована. Install Key (или Product Key) – цифровая лицензия, которая вводится непосредственно пользователем, и предоставляется при покупке или скачивании официального софта.
Если, к примеру, пользователь покупал компьютер со встроенной ОС Windows 7 или 8 версии и затем перешел на 10, то в таком случае автоматически будет сгенерирован Install Key, отличающийся от вшитого по значению.
Простой команды или встроенной программы для показа лицензионного ключа не предусмотрено. Поэтому сначала можно воспользоваться методами поиска с помощью системных утилит.
Windows PowerShell – встроенная программа, по функционалу очень схожая с командной строкой. Чтобы с ее помощью узнать номер лицензионного ключа, мне потребуется выполнить несколько простых действий:
Открываю приложение «Блокнот» и копирую в него такой скрипт.
#Main function Function GetWin10Key { $Hklm = 2147483650 $Target = $env:COMPUTERNAME $regPath = «Software\Microsoft\Windows NT\CurrentVersion» $DigitalID = «DigitalProductId» $wmi = [WMIClass]»\\$Target\root\default:stdRegProv» #Get registry value $Object = $wmi.GetBinaryValue($hklm,$regPath,$DigitalID) [Array]$DigitalIDvalue = $Object.uValue #If get successed If($DigitalIDvalue) { #Get producnt name and product ID $ProductName = (Get-itemproperty -Path «HKLM:Software\Microsoft\Windows NT\CurrentVersion» -Name «ProductName»).ProductName $ProductID = (Get-itemproperty -Path «HKLM:Software\Microsoft\Windows NT\CurrentVersion» -Name «ProductId»).ProductId #Convert binary value to serial number $Result = ConvertTokey $DigitalIDvalue $OSInfo = (Get-WmiObject «Win32_OperatingSystem» | select Caption).Caption If($OSInfo -match «Windows 10″) { if($Result) { [string]$value =»ProductName : $ProductName `r`n» ` + «ProductID : $ProductID `r`n» ` + «Installed Key: $Result» $value #Save Windows info to a file $Choice = GetChoice If( $Choice -eq 0 ) { $txtpath = «C:\Users\»+$env:USERNAME+»\Desktop» New-Item -Path $txtpath -Name «WindowsKeyInfo.txt» -Value $value -ItemType File -Force | Out-Null } Elseif($Choice -eq 1) { Exit } } Else { Write-Warning «Запускайте скрипт в Windows 10» } } Else {Write-Warning «Запускайте скрипт в Windows 10»} } Else { Write-Warning «Возникла ошибка, не удалось получить ключ» }
} #Get user choice Function GetChoice { $yes = New-Object System.Management.Automation.Host.ChoiceDescription «&Yes»,»» $no = New-Object System.Management.Automation.Host.ChoiceDescription «&No»,»» $choices = [System.Management.Automation.Host.ChoiceDescription[]]($yes,$no) $caption = «Подтверждение» $message = «Сохранить ключ в текстовый файл?» $result = $Host.UI.PromptForChoice($caption,$message,$choices,0) $result } #Convert binary to serial number Function ConvertToKey($Key) { $Keyoffset = 52 $isWin10 = [int]($Key[66]/6) -band 1 $HF7 = 0xF7 $Key[66] = ($Key[66] -band $HF7) -bOr (($isWin10 -band 2) * 4) $i = 24 [String]$Chars = «BCDFGHJKMPQRTVWXY2346789» do { $Cur = 0 $X = 14 Do { $Cur = $Cur * 256 $Cur = $Key[$X + $Keyoffset] + $Cur $Key[$X + $Keyoffset] = [math]::Floor([double]($Cur/24)) $Cur = $Cur % 24 $X = $X — 1 }while($X -ge 0) $i = $i- 1 $KeyOutput = $Chars.SubString($Cur,1) + $KeyOutput $last = $Cur }while($i -ge 0) $Keypart1 = $KeyOutput.SubString(1,$last) $Keypart2 = $KeyOutput.Substring(1,$KeyOutput.length-1) if($last -eq 0 ) { $KeyOutput = «N» + $Keypart2 } else { $KeyOutput = $Keypart2.Insert($Keypart2.IndexOf($Keypart1)+$Keypart1.length,»N») } $a = $KeyOutput.Substring(0,5) $b = $KeyOutput.substring(5,5) $c = $KeyOutput.substring(10,5) $d = $KeyOutput.substring(15,5) $e = $KeyOutput.substring(20,5) $keyproduct = $a + «-» + $b + «-«+ $c + «-«+ $d + «-«+ $e $keyproduct } GetWin10Key
Выглядеть это будет вот так.
Сохраняю файл с разрешением ps1. Какое дать название – не имеет значения.
Открываю приложение Windows PowerShell от имени администратора. Сделать это я могу двумя способами – через контекстное меню «Пуск»
или с помощью строки системного поиска в панели задач.
Ввожу команду Set-ExecutionPolicy RemoteSigned и нажимаю на клавишу «Enter».
Она нужна, чтобы принять новые правила политики, прописанные в тот самом созданном документе.
Ввожу дальше путь к папке, в которой был сохранен скрипт. У меня он таков – C:\windows10key.ps1. Нажимаю на клавишу «Enter».
В результате на экране выйдут несколько строчек, одна из которой – «Installed Key». Ниже высветится предложение сохранить его в текстовом виде. Для подтверждения нужно нажать на клавишу Y, для отклонения – N.
Возвращаю политику выполнения скриптов в исходное состояние, введя команду Set-ExecutionPolicy restricted.
Можно пойти путем проще – просто задать команду на открытие скрипта, указав путь к нему. В моем случае это будет выглядеть так:
ВНИМАНИЕ! В некоторых случаях команда может не сработать из-за ограничений в групповой политике. В данном случае можно воспользоваться другими системными инструментами.
Самый простой способ узнать цифровую лицензию – создать скрипт Visual Basic Script. Открываю приложение «Блокнот» и ввожу в поле следующий текст:
Set WshShell = CreateObject(«WScript.Shell») regKey = «HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\» DigitalProductId = WshShell.RegRead(regKey & «DigitalProductId») Win10ProductName = «Версия Windows 10: » & WshShell.RegRead(regKey & «ProductName») & vbNewLine Win10ProductID = «ID продукта: » & WshShell.RegRead(regKey & «ProductID») & vbNewLine Win10ProductKey = ConvertToKey(DigitalProductId) ProductKeyLabel =»Ключ Windows 10: » & Win10ProductKey Win10ProductID = Win10ProductName & Win10ProductID & ProductKeyLabel MsgBox(Win10ProductID) Function ConvertToKey(regKey) Const KeyOffset = 52 isWin10 = (regKey(66) \ 6) And 1 regKey(66) = (regKey(66) And &HF7) Or ((isWin10 And 2) * 4) j = 24 Chars = «BCDFGHJKMPQRTVWXY2346789» Do Cur = 0 y = 14 Do Cur = Cur * 256 Cur = regKey(y + KeyOffset) + Cur regKey(y + KeyOffset) = (Cur \ 24) Cur = Cur Mod 24 y = y -1 Loop While y >= 0 j = j -1 winKeyOutput = Mid(Chars, Cur + 1, 1) & winKeyOutput Last = Cur Loop While j >= 0 If (isWin10 = 1) Then keypart1 = Mid(winKeyOutput, 2, Last) insert = «N» winKeyOutput = Replace(winKeyOutput, keypart1, keypart1 & insert, 2, 1, 0) If Last = 0 Then winKeyOutput = insert & winKeyOutput End If a = Mid(winKeyOutput, 1, 5) b = Mid(winKeyOutput, 6, 5) c = Mid(winKeyOutput, 11, 5) d = Mid(winKeyOutput, 16, 5) e = Mid(winKeyOutput, 21, 5) ConvertToKey = a & «-» & b & «-» & c & «-» & d & «-» & e End Function