Главная > Операционные системы > Windows > Windows 8 Как узнать ключ Windows 8В этой статье мы поговорим о том, как можно узнать ключ Windows 8, с помощью которого активирована система. Напомним, в Windows 8, как и в предыдущих ОС семейства Microsoft – ключ продукта представляет собой последовательность из 25 символов, разделенных на 5 групп по 5 символов в каждой (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX). Данный ключ используется для активации всех версий Windows 8. При активации Windows 8 нужно учитывать следующие моменты:
При покупке retail версии Windows 8 ключ продукта поставляется в виде наклейки, которую можно наклеить на системный блок или ноутбук, в случае покупке устройства с предустановленной Windows 8, OEM— ключ уже будет приклеен к корпусу девайса. Эта наклейка называется Certificate of Authenticity (COA). ![]() Однако нередко случается, что по какой-либо «трагической причине», текст на такой лицензионной наклейке становится нечитаемым (пролился кофе, стерся об коленки, просто потерялся и т.д.). Как в этом случае можно программно найти ключ Windows 8, чтобы можно было в дальнейшем при переустановке системы ее вновь активировать? Кроме того может возникнуть необходимость проверки системы на лицензионность и совпадение установленного в системе ключа и ключа на наклейке. Ключ активации Windows 8 хранится в системном реестре, но не в открытом виде, а в зашифрованном (кодировка base 24). И в принципе его можно оттуда извлечь, расшифровать и переписать на бумажку. Информация о ключе хранится в ключе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId, нам нужно лишь его извлечь и расшифровать. ![]() В общем случае активированный ключ можно извлечь через WMI. Сделать это можно без использования сторонних программ средствами, средствами уже имеющимися в составе ОС Windows 8:VBScrit и Powershell. Ниже приведем оба способа, позволяющих определить ключ Windows 8. Получаем ключ активации Windows 8 с помощью VBScript
![]() Готовый vbs скрипт можно скачать тут:get_windows_8_key_vbs.zip. Как узнать ключ активации Windows 8 с помощью PowershellУзнать ключ установленной Windows 8 можно также с помощью Powerhell.
Готовый powershell скрипт находится тут:get_windows_8_key_ps.zip Еще одна версия Powershell скрипта из комментариев от akaNeo
## Декларация функции получения ключа продукта Windows
## Скрипт предназначен PowerShell версии 2.0 (актуальна для всех версии Windows)
Function Get-WindowsProduct {
## Функция возвращает ключ установленной Windows с любой машины в сети, плюс краткую инфу по установленной версии. Вызов без ключей подразумевает обращение к хосту
param ($Targets = [System.Net.Dns]::GetHostName())
function PIDDecoderFromRegistry($digitalProductId) {
New-Variable -Name base24 -Value 'BCDFGHJKMPQRTVWXY2346789' ## -Option Const ## <24> символа использующиеся в ключах продукта Windows и Office
New-Variable -Name decodeStringLength -Value 24 ## -Option Const ## ‘Чистая’ длина зашифрованного ключа продукта
New-Variable -Name decodeLength -Value 14 ## -Option Const ## Длина зашифрованного ключа продукта в байтах (символы хранятся в полубайтах)
New-Variable -Name decodedKey -Value ([System.String]::Empty) ## Строка содержащая расшифрованный ключ продукта
## Проверка, содержит ли ключ продукта ‘N’ (такое возможно для Windows 8 и Office 15)
$containsN = ($digitalProductId[$decodeLength] / 8) -bAnd 1 ## ($digitalProductId[$decodeLength] -shr 3) -bAnd 1 ## PS 4.0
$digitalProductId[$decodeLength] = [System.Byte]($digitalProductId[$decodeLength] -bAnd [System.Convert]::ToByte('F7', 16)) ## 247
## Собственно процесс расшифровки
for ($i = $decodeStringLength; $i -ge 0; $i--)
{
$digitMapIndex = 0
for ($j = $decodeLength; $j -ge 0; $j--)
{
$digitMapIndex = $digitMapIndex * 256 -bXor $digitalProductId[$j] ## $digitMapIndex -shl 8 -bXor $digitalProductId[$j] ## PS 4.0
$digitalProductId[$j] = [System.Math]::Truncate($digitMapIndex / $base24.Length)
$digitMapIndex = $digitMapIndex % $base24.Length
}
$decodedKey = $decodedKey.Insert(0, $base24[$digitMapIndex])
}
## Удаление первого символа в ключе и помещение ‘N’ в нужную позицию
if ([System.Boolean]$containsN)
{
$firstLetterIndex = 0
for ($index = 0; $index -lt $decodeStringLength; $index++)
{
if ($decodedKey[0] -ne $base24[$index]) {continue}
$firstLetterIndex = $index
break
}
$keyWithN = $decodedKey
$keyWithN = $keyWithN.Remove(0, 1)
$keyWithN = $keyWithN.Substring(0, $firstLetterIndex) + 'N' + $keyWithN.Remove(0, $firstLetterIndex)
$decodedKey = $keyWithN;
}
$returnValue = $decodedKey
## Вставка тире через каждые пять символов
for ($t = 20; $t -ge 5; $t -= 5)
{
$returnValue = $returnValue.Insert($t, '-')
}
return $returnValue
}
## Main
New-Variable -Name hklm -Value 2147483650 ## -Option Const
New-Variable -Name regPath -Value 'Software\Microsoft\Windows NT\CurrentVersion' ## -Option Const
New-Variable -Name regValue -Value 'DigitalProductId' ## -Option Const
Foreach ($target in $Targets) {
$win32os = $null
$wmi = [WMIClass]"\\$target\root\default:stdRegProv"
$binArray = $wmi.GetBinaryValue($hklm,$regPath,$regValue).uValue[52..66]
$win32os = Get-WmiObject -Class 'Win32_OperatingSystem' -ComputerName $target
$product = New-Object -TypeName System.Object
## Конструктор
$product | Add-Member -MemberType 'NoteProperty' -Name 'Computer' -Value $target
$product | Add-Member -MemberType 'NoteProperty' -Name 'Caption' -Value $win32os.Caption
$product | Add-Member -MemberType 'NoteProperty' -Name 'CSDVersion' -Value $win32os.CSDVersion
$product | Add-Member -MemberType 'NoteProperty' -Name 'OSArch' -Value $win32os.OSArchitecture
$product | Add-Member -MemberType 'NoteProperty' -Name 'BuildNumber' -Value $win32os.BuildNumber
$product | Add-Member -MemberType 'NoteProperty' -Name 'RegisteredTo' -Value $win32os.RegisteredUser
$product | Add-Member -MemberType 'NoteProperty' -Name 'ProductID' -Value $win32os.SerialNumber
$product | Add-Member -MemberType 'NoteProperty' -Name 'ProductKey' -Value (PIDDecoderFromRegistry($binArray))
Write-Output $product
}
} ## End Get-WindowsProduct
Описанные выше методики, позволяющие узнать ключ установленной Windows, будут работать на всех системах с ОС: Windows XP, Vista, Windows 7 и Windows 8. Материал взят с сайта:Главная > Операционные системы > Windows > Windows 8 |