Ключ продукта Windows 10 обычно хранится в реестре Windows. Ключ продукта можно найти в нескольких местах, в зависимости от обстоятельств. Вот несколько способов программного получения ключа продукта Windows 10 с использованием примеров кода:
Метод 1: использование VBScript
Set WshShell = CreateObject("WScript.Shell")
MsgBox "Windows 10 Product Key: " & WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId")
Метод 2. Использование PowerShell
(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey
Метод 3. Использование C# (требуются права администратора)
using Microsoft.Win32;
class Program
{
static void Main()
{
RegistryKey localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey subKey = localKey.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");
var productKey = subKey.GetValue("DigitalProductId");
System.Console.WriteLine("Windows 10 Product Key: " + DecodeProductKey((byte[])productKey));
}
public static string DecodeProductKey(byte[] digitalProductId)
{
const int keyOffset = 52;
const int keySize = 15;
char[] digits = new char[]
{
'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R', 'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9'
};
string productKey = string.Empty;
int isWin8 = (byte)(digitalProductId[66] / 6 & 1);
digitalProductId[66] = (byte)((digitalProductId[66] & 0xF7) | (isWin8 & 2) * 4);
int cur = 0;
for (int i = keyOffset + keySize - 1; i >= keyOffset; i--)
{
cur = 0;
for (int j = 14; j >= 0; j--)
{
cur = cur * 256;
cur = digitalProductId[j + keyOffset] + cur;
digitalProductId[j + keyOffset] = (byte)(cur / 24);
cur = cur % 24;
}
productKey = digits[cur] + productKey;
}
return productKey;
}
}
Обратите внимание, что описанные выше методы могут работать не во всех сценариях, особенно если ключ продукта зашифрован или недоступен в реестре из-за OEM-установок или других факторов. Для получения ключа продукта всегда рекомендуется использовать встроенные механизмы активации, предоставляемые Microsoft.