Сразу после выхода новой ОС все начали интересоваться, как узнать ключ установленной Windows 10, хотя в большинстве случаев это не требуется. Тем не менее, если вам все же нужен ключ для каких-то целей, его относительно легко определить, как для установленной ОС, так и для ключа продукта, зашитого производителем в UEFI (они могут быть разными).
В этом руководстве описаны простые способы узнать ключ продукта Windows 10 с помощью командной строки, Windows PowerShell и сторонних программ. Заодно упомяну, почему разные программы показывают разные данные, как посмотреть отдельно OEM ключ в UEFI (для операционной системы, которая была на компьютере изначально) и ключ установленной на данный момент системы.
Примечание: если вы сделали бесплатное обновление до Windows 10 и теперь хотите узнать ключ активации для чистой установки на том же компьютере, вы можете это сделать, но это не обязательно (кроме того, у вас будет тот же ключ, что и у других людей, получивших 10-ку путем обновления). При установке Windows 10 с флешки или диска вас попросят ввести ключ продукта, но вы можете пропустить этот шаг, нажав в подсказке "У меня нет ключа продукта" (и Microsoft говорит, что так и нужно делать).
После установки и подключения к интернету система будет активирована автоматически, так как после обновления активация "привязывается" к вашему компьютеру. То есть, поле для ввода ключа в установщик Windows 10 присутствует только для покупателей Retail-версий системы. Дополнительно: для чистой установки Windows 10 можно использовать ключ продукта от ранее установленных Windows 7, 8 и 8 на том же компьютере.1. Подробнее о такой активации: Активация Windows 10. При желании вы также можете использовать Windows 10 без активации.
https://github.com/Superfly-Inc/ShowKeyPlus/releases/
https://neosmart.net/OemKey/
Просмотр ключа установленной Windows 10 с помощью PowerShell
Там, где можно обойтись без сторонних программ, я предпочитаю обходиться без них. Просмотр ключа продукта Windows 10 является одной из таких задач. Если вам проще использовать для этого бесплатную программу, пролистайте руководство ниже. (Кстати, некоторые программы просмотра ключей отправляют их заинтересованным лицам)
Нет простой команды PowerShell или командной строки, чтобы узнать ключ текущей установленной системы (есть такая команда, показывающая ключ от UEFI, я покажу ниже. Но обычно требуется именно текущий системный ключ, который отличается от предустановленного). Но можно воспользоваться готовым скриптом PowerShell, который выводит необходимую информацию (автор скрипта Jakob Bindslet).
Вот что вам нужно сделать. Прежде всего, запустите Блокнот и скопируйте в него приведенный ниже код.
#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. Чтобы сделать это в Блокноте, при сохранении укажите в поле "Тип файла" вместо "Текстовые документы" "Все файлы". Вы можете сохранить его, например, под именем win10key.ps1
После этого запустите Windows PowerShell от имени администратора. Для этого в строке поиска можно набрать PowerShell, затем щелкнуть по ней правой кнопкой мыши и выбрать соответствующий пункт.
В PowerShell введите следующую команду: Set-ExecutionPolicy RemoteSigned и подтвердите его (введите Y и нажмите Enter, когда появится запрос).
На следующем шаге введите команду: C:\win10key.ps1 (эта команда содержит путь к сохраненному файлу скрипта).
В результате выполнения команды вы увидите информацию о ключе установленной Windows 10 (в пункте Installed Key) и предложение сохранить его в текстовый файл. Узнав ключ продукта, вы можете сбросить политику сценариев в PowerShell на значение по умолчанию с помощью команды Set-ExecutionPolicy restricted
Как узнать OEM-ключ из UEFI в PowerShell
Если на вашем компьютере или ноутбуке была предустановлена Windows 10 и вам нужно посмотреть OEM-ключ (который хранится в UEFI материнской платы), вы можете воспользоваться простой командой, которую нужно запустить в командной строке от имени администратора.
wmic path softwarelicensingservice get OA3xOriginalProductKey
В результате вы получите предустановленный системный ключ, если он присутствует в системе (он может отличаться от того, который используется текущей ОС, но его можно использовать для возврата оригинальной версии Windows).
Другой вариант той же команды, но для Windows PowerShell
(Get-WmiObject -query "select * from SoftwareLicensingService").OA3xOriginalProductKey
Как посмотреть ключ установленной Windows 10 с помощью VBS-скрипта
И еще один скрипт, уже не для PowerShell, а в формате VBS (Visual Basic Script), который отображает ключ продукта Windows 10, установленной на вашем компьютере или ноутбуке, и, вероятно, более прост в использовании.
Скопируйте приведенные ниже строки в блокнот.
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
У вас должно получиться, как на скриншоте ниже.
Затем сохраните документ с расширением .vbs (в диалоге сохранения выберите "Все файлы" в поле "Тип файла").
Перейдите в папку, где был сохранен файл, и запустите его — после выполнения появится окно с ключом продукта и версией установленной Windows 10.
Как я уже говорил, существует множество программ для просмотра ключа — например, Speccy, а также другие утилиты для просмотра характеристик компьютера позволяют узнать эту информацию. Но я уверен, что описанных здесь методов будет достаточно практически для любой ситуации.