В этой статье мы поговорим о том, как можно узнать ключ Windows, с помощью которого активирована система. Напомним, в Windows, как и в предыдущих ОС семейства Microsoft – ключ продукта представляет собой последовательность из 25 символов, разделенных на 5 групп по 5 символов в каждой (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX). Данный ключ используется для активации всех версий Windows.

При активации Windows нужно учитывать следующие моменты:
- Ключ Windows можно использовать только для активации той редакции Windows, для которой он предназначен, и не для какой другой (т.е. с помощью ключа Windows Pro не получится активировать Windows home).
- OEM ключ можно использовать для активации OEM-ной копии Windows на том же самом компьютере, на котором он был активирован впервые и ни на каком другом
- Ключом retail можно активировать Windows на любом компьютере, но только на одном одновременно

При покупке retail версии Windows ключ продукта поставляется в виде наклейки, которую можно наклеить на системный блок или ноутбук, в случае покупке устройства с предустановленной Windows,  OEM- ключ уже будет приклеен к корпусу девайса. Эта наклейка называется Certificate of Authenticity (COA).

https://bitbucket.org/landwatersun/forum/downloads/201711222032.jpg

Однако нередко случается, что по какой-либо «трагической причине», текст на такой лицензионной наклейке становится нечитаемым (пролился кофе, стерся об коленки, просто потерялся и т.д.). Как в этом случае можно программно найти  ключ Windows, чтобы можно было в дальнейшем при переустановке системы ее вновь активировать? Кроме того может возникнуть необходимость проверки системы на лицензионность и совпадение установленного в системе ключа и ключа на наклейке.

Ключ активации Windows хранится в системном реестре, но не в открытом виде, а в  зашифрованном (кодировка base 24). И в принципе его можно оттуда извлечь, расшифровать и переписать на бумажку. Информация о ключе хранится в ключе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId, нам нужно лишь его извлечь и расшифровать.

https://bitbucket.org/landwatersun/forum/downloads/201711222033.jpg

В общем случае активированный ключ можно извлечь через WMI. Сделать это можно без использования сторонних программ средствами, средствами уже имеющимися в составе ОС Windows:VBScrit и Powershell. Ниже приведем один способ, позволяющий определить ключ Windows.

1. Создайте новый текстовый файл с именем get_windows_key.vbs и сохраните его на рабочем столе
2. Вставьте в него следующий код

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

3. Дважды щелкните по файлу, после чего  должно появиться окно, с отображенным в нем ключом продукта. В нашем случае система активирована ключом Windows 8 Release Preview.

https://bitbucket.org/landwatersun/forum/downloads/201711222034.jpg

Готовый vbs скрипт можно скачать тут: get_windows_key.vbs

Также для получения ключа можно воспользоваться утилитой KeyFinder https://www.magicaljellybean.com/keyfinder/