<
  • Главная
Статьи

Як дізнатися ключ активації встановленої системи на Windows 10, 8.1, 8, 7, Vista

  1. Визначення ключа встановленої системи Windows через VBScript.
  2. 2) Визначення ключа активації Windows за допомогою PowerShell.
  3. Альтернативний скрипт для PowerShell працює на Windows 7 і більш ранніх системах.

Досить специфічна тема і потрібна дуже і дуже рідко, але так як цей сайт і створювався як архів корисних знань, дана стаття обов'язково повинна була тут з'явитися. Отже, кому може знадобитися дана стаття? В першу чергу тим, хто втратив або знищив свій ключ продукту. Та ж наклейка на ноутбуках з часом може стертися, і це створить певну частку проблеми при перевстановлення системи, так як доведеться купувати нову ліцензійну систему. Саме в даному випадку знадобиться дана стаття, так як ви з допомогою пари кліків зможете побачити і перезаписати в більш надійне місце ваш ключ Windows. Працює на будь-якій операційній системі, в тому числі на Windows 8.1 і 8. Після прочитання цієї статті вам можна бути цікава стаття про відключенні запиту ключа активації під час установки системи .

Інструкція складається з двох частин:
1) Визначення ключа Windows через VBScript.
2) Визначення ключа активації Windows за допомогою PowerShell.

Визначення ключа встановленої системи Windows через VBScript.

1) Створюємо в будь-якому зручному місці текстовий файл. Називаємо його WindowsKey (в кінці даного способу доступний для скачки готовий файл, але все ж рекомендую створювати файл самому, так як при архівації чомусь втрачається кодування і не завжди її виходить відновити).

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 (is Win8 = 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) Міняємо розширення файлу на .vbs. за засланні доступна інструкція по зміні розширення файлу.

4) Відкриваємо файл подвійним кліком. З'явиться вікно з вашим ключем активації.

Натискаєте ОК і з'являється вікно з більш детальною інформацією.

Для спрощення свого життя, ви можете завантажити готовий файл за посиланням: WindowsKey.vbs

2) Визначення ключа активації Windows за допомогою PowerShell.

Є ще й альтернативний спосіб - це використання оболонки PowerShell. Але для початку нам потрібно підготувати модуль для неї.

1) Створюємо текстовий файл і називаємо його module (готовий файл модуля: module.ps1 ).

2) Відкриваємо його текстовим редактором і вставляємо наступний код:

## Декларація функції отримання ключа продукту 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

Зберігаємо файл.

3) Міняємо розширення файлу на .ps1 ( інструкція по зміні розширення файлу ).

4) Відкриваємо командний рядок від імені адміністратора. У Windows 8 і 8.1 для цього натискаємо правою клавішею по куту «Пуск» і вибираємо «Командний рядок (Адміністратор)» в більш ранніх системах користуємося пошуком в меню пуск, вводимо cmd.exe і запускаємо файл від імені адміністратора (правою клавішею).

4) Запускаємо оболонку PowerShell ввівши команду powershell. На початку рядка з'являються літери PS.

5) Даємо дозвіл на виконання непідписаних скриптів, для цього вводимо команду:

Set-ExecutionPolicy RemoteSigned

І тиснемо Enter.

6) Далі підключаємо наш модуль, вводимо команду типу:

Import-Module "* путь_до_вашего_файла *"

У моєму випадку це буде виглядати ось так Import-Module «D: \ Windows key \ module.ps1» і тиснемо Enter.
Якщо ви створювали файл за допомогою блокнота, а не скачали готовий файл доступний за посиланням в першому пункті, то з великою часткою ймовірності у вас показало наступну помилку:

Натисніть на файл модуля правою клавішею і виберіть «Змінити»:

Запуститься PowerShell ISE. У ньому відразу тисніть кнопку «Зберегти» і закривайте програму, він змінить кодування.

Після цього модуль підключиться без помилок.

7) Вводимо команду на виконання скрипта:

Get-WindowsProduct

Скрипт відобразить в командному рядку детальну інформацію про активацію системи.

Альтернативний скрипт для PowerShell працює на Windows 7 і більш ранніх системах.

На старіших системах останній скрипт може працювати некоректно, тому надаю інший варіант скрипта: moduleWin7.ps1

На цьому все. Сподіваюся ця стаття виявилася вам корисною, натисніть одну з кнопок нижче, щоб розповісти про неї друзям. Також підпишіться на оновлення сайту, ввівши свій e-mail в поле праворуч або підписавшись на групу в Вконтакте.

Дякуємо за увагу

матеріал сайту Skesov.ru

Оцініть статтю:

(5 голосів, середнє: 3.8 out of 5)

Поділіться з друзями!Отже, кому може знадобитися дана стаття?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью