Как узнать ключ активации Виндовс

Для активации 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. Я приведу вот эту ссылку на список релизов программы. Последнюю версию выберите сами.

 

Добавить комментарий

Категория