Для активации Windows используется 25-ти значный ключ продукта.
Он имеет вид XXXXX-XXXXX-XXXXX-XXXXX-XXXXX.
Узнать ключ активации Виндовс требуется в нескольких случаях. Например, если у вас на ноуте или ПК установлена Семёрка или Восьмёрка и вы хотите обновить её до Windows 10.
Существует несколько способов сделать это. Некоторые рассмотрим в тексте ниже.
Сначала воспользуемся скриптом VBS. Это, на мой взгляд, самый простой способ, который не предполагает использования сторонних приложений.
Видео инструкция поможет с определением ключа продукта.
Для того, чтобы изготовить скрипт, создаём обычный текстовый документ. На свободном месте Рабочего стола кликаем правой клавишей мыши и в контекстном меню наводим курсор на пункт Создать. В дополнительном меню выбираем пункт Текстовый документ.
Скрипт VBS
-----начало скрипта-----
Set WshShell = CreateObject("WScript.Shell") regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\" DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId") Win8ProductName = "Windows Product Name: " & WshShell.RegRead(regKey & "ProductName") & vbNewLine Win8ProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine Win8ProductKey = ConvertToKey(DigitalProductId) strProductKey ="Windows Key: " & Win8ProductKey Win8ProductID = Win8ProductName & Win8ProductID & strProductKey MsgBox(Win8ProductKey) MsgBox(Win8ProductID) Function ConvertToKey(regKey) Const KeyOffset = 52 isWin8 = (regKey(66) \ 6) And 1 regKey(66) = (regKey(66) And &HF7) Or ((isWin8 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 (isWin8 = 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
-----конец скрипта-----
Ещё один способ посмотреть ключ. Принцип работы похож - копируем текст скрипта в текстовый документ, сохраняем в нужном формате и выполняем. Но, на этот раз, используем для выполнения скрипта PowerShell.
Код скрипта для 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 |
Необходимо скопировать этот текст, например в блокнот, и сохранить его с расширением .psl
Например, я сохранил его на диск С под названием key. Таким образом, путь до этого файла у меня вот такой:
C:\key.ps1
После этого, запускаем PowerShell от имени администратора.
После того как PowerShell запущен, вставляем в его окно следующую команду:
Set-ExecutionPolicy RemoteSigned
После ввода команды и нажатия на Enter, появится запрос на подтверждение. Нужно ввести букву Y (англ.) и нажать Enter.
Теперь, для выполнения скрипта, просто вводим в PowerShell путь до него:
C:\key.ps1
При этом, в строке с текстом Installed Key: мы увидим ключ продукта.
После того, как вы разобрались со своим ключом, я рекомендую запретить политику выполнения PowerShell, разрешённую нами на первом этапе. Это можно сделать, введя в PowerShell команду:
Set-ExecutionPolicy restricted
Посмотреть ключ установленной Windows можно так же с помощью сторонних программ.
Одна из самых популярных - ProduKey. Скачать её можно с официального сайта.
Ещё одна неплохая программка, для того, чтобы вытащить ключ - Show Key Plus. Её можно скачать со страницы проекта на Githab. Я приведу вот эту ссылку на список релизов программы. Последнюю версию выберите сами.