Ako zistiť kľúč systému Windows 8

V tomto článku budeme hovoriť o tom, ako nájdete kľúč Windows 8, pomocou ktorého je systém aktivovaný. Pripomeňme, že v systéme Windows 8, rovnako ako v predchádzajúcich operačných systémoch rodiny Microsoft, je kód Product Key postupnosť 25 znakov, rozdelená do 5 skupín po 5 znakov (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX). Tento kľúč sa používa na aktiváciu všetkých verzií systému Windows 8.

Pri aktivácii systému Windows 8 musíte zvážiť nasledujúce body:

  • Kľúč Windows 8 sa dá použiť iba na aktiváciu vydania systému Windows 8, pre ktoré je určený, a nie pre žiadny iný (t. J. Použitie klávesu Windows 8 Pro nebude fungovať na aktiváciu systému Windows 8 doma).
  • OEM kľúč možno použiť na aktiváciu kópie systému Windows 8 OEM na rovnakom počítači, na ktorom bola prvýkrát aktivovaná, a na inom počítači
  • Kľúč maloobchodné Systém Windows 8 môžete aktivovať na ľubovoľnom počítači, ale iba na jednom súčasne

Pri kúpe maloobchodné verzie systému Windows 8, produktový kľúč má podobu nálepky, ktorú je možné nalepiť na systémovú jednotku alebo laptop, ak si zakúpite zariadenie s predinštalovaným systémom Windows 8,  OEM- kľúč bude už prilepený k puzdru zariadenia. Táto nálepka sa nazýva Certifikát pravosti (COA).

Často sa však stáva, že z nejakého „tragického dôvodu“ sa text na takto označenej nálepke stane nečitateľným (káva sa vyliala, trela na kolenách, jednoducho stratila atď.). Ako v tomto prípade môžete programovo nájsť kľúč Windows 8, aby ste ho mohli znova aktivovať pri preinštalovaní systému? Okrem toho môže byť potrebné skontrolovať licencovanie systému a zhodnosť kľúča nainštalovaného v systéme a kľúča na nálepke..

Aktivačný kľúč Windows 8 je uložený v registri, ale nie v obyčajnom texte, ale v šifrovanom formáte (kódovanie základňa 24). V zásade sa odtiaľ dá extrahovať, dešifrovať a skopírovať na kus papiera. Kľúčové informácie sú uložené v kľúči registra HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ DigitalProductId, musíme ju iba extrahovať a dešifrovať.

Vo všeobecnosti sa aktivovaný kľúč dá získať cez WMI. Môžete to urobiť bez použitia programov tretích strán pomocou nástrojov, ktoré sú už k dispozícii v systéme Windows 8: VBScrit a Powershell. Nižšie sú uvedené dva spôsoby, ako určiť kľúč systému Windows 8.

Získajte aktivačný kľúč Windows 8 pomocou VBScript

  1. Vytvorte nový textový súbor s názvom get_windows_8_key.vbs a uložte ho na plochu
  2. Vložte doň nasledujúci kód
    Nastaviť 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:" & Win8ProductName WinProduct & Win8ProductName Win8 a Win8ProductName Win8ProductName Win8 a Win8ProductKName Win8 Win8ProductID & strProductKey MsgBox (Win8ProductKey) MsgBox (Win8ProductID) Funkcia ConvertToKey (regKey) Const KeyOffset = 52 isWin8 = (regKey (66) \ 6) a 1 regKey (66) = (regKey (66) And & HF7) Or ((WW8) 2) * 4) j = 24 znakov = "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 Kým y> = 0 j = j -1 winKeyOutput = Mid (Chars, Cur + 1, 1) & winKeyOutput Last = Cur Loop When j> = 0 If (je Win8 = 1) Potom 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 = stredná (winKeyOutput, 1, 5) b = stredná (winKeyOutput, 6, 5) c = stredná (winKeyOutput, 11, 5) d = stredná (winKeyOutput, 16, 5) e = stredná (winKeyOutput, 21, 5) ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e End Function
  3. Dvakrát kliknite na súbor. Potom by sa malo zobraziť okno so zobrazeným kódom Product Key. V našom prípade je systém aktivovaný pomocou kľúča Windows 8 Release Preview.

Skript Ready VBS si môžete stiahnuť tu: get_windows_8_key_vbs.zip.

Ako zistiť aktivačný kľúč Windows 8 pomocou Powershell

Kľúč nainštalovaného systému Windows 8 môžete nájsť aj pomocou Powerhell.

  1. Vytvorte súbor s príponou get_windows_8_key.ps1 a skopírujte doň nasledujúci kód:
    function Get-WindowsKey ## získajte kód Product Key systému Windows z ľubovoľného parametra PC ($ Target = ".") $ hklm = 2147483650 $ regPath = "Software \ Microsoft \ Windows NT \ CurrentVersion" $ regValue = "DigitalProductId" Foreach ($ cieľ v $ cieľoch) $ productKey = $ null $ win32os = $ null $ wmi = [WMIClass] "\\ $ target \ root \ default: stdRegProv" $ data = $ wmi.GetBinaryValue ($ hklm, $ regPath, $ regValue ) $ binArray = ($ data.uValue) [52 ... 66] $ charsArray = "B", "C", "D", "F", "G", "H", "J", "K", "M", "P", "Q", "R", "T", "V", "W", "X", "Y", "2", "3", "4", "6" "," 7 "," 8 "," 9 "## dešifrovať binárne dáta kódované bázou 24 pre ($ i = 24; $ i -ge 0; $ i--) $ k = 0 za ($ j = 14; $ j -ge 0; $ j--) $ k = $ k * 256 -x alebo $ binArray [$ j] $ binArray [$ j] = [math] :: skrátiť ($ k / 24) $ k = $ k% 24 $ productKey = $ charsArray [$ k] + $ productKey If (($ i% 5-ekv. 0) - a ($ i -ne 0)) $ productKey = "-" + $ productKey $ win32os = Get-WmiObject Win32_OperatingSystem -počítač $ target $ obj = Nový objekt $ obj | Počítač s pridanou hodnotou programu Noteproperty - hodnota $ target $ obj | Nadpis doplnkovej noteproperty - hodnota $ win32os.Caption $ obj | Doplnková členská noteproperty CSDVersion - hodnota $ win32os.CSDVersion $ obj | Doplnková členská noteproperty OSArch - hodnota $ win32os.OSArchitecture $ obj | Zostaviť číslo noteproperty pre ďalších členov - hodnota $ win32os.BuildNumber $ obj | Registrovaná registrácia používateľa bez pridania k hodnotám $ win32os.RegisteredUser $ obj | AddID Member Noteproperty ProductID - hodnota $ win32os.SerialNumber $ obj | Neoddelená chyba produktu ProductKey - hodnota $ productkey $ obj
  2. Spustite príkazový riadok s oprávneniami správcu a spustite v ňom príkaz powerhell, aby ste otvorili konzolu PoSh
  3. V zobrazenom okne musíte povoliť vykonávanie nepodpísaných skriptov pomocou príkazu:
    Set-ExecutionPolicy RemoteSigned
  4. Vykonajte príkazy
    Importovací modul d: \ myfile.ps1; Get-Klávesa Windows
  5. V dôsledku toho sa v okne Powershell zobrazí kľúč nainštalovaného systému Windows
  6. Ak potrebujete nájsť aktivačné kľúče na vzdialených počítačoch, použite príkaz Get-WindowsKey "computer1", "serv-dc2", "romp-buh02"

Dokončený skript powerhell je tu: get_windows_8_key_ps.zip

Ďalšia verzia skriptu Powershell z komentárov od akaNeo

   
## Vyhlásenie o funkcii na získanie kódu Product Key systému Windows ## Skript je navrhnutý programom PowerShell verzie 2.0 (relevantné pre všetky verzie systému Windows). Funkcia Get-WindowsProduct ## Táto funkcia vráti nainštalovaný kľúč Windows z ľubovoľného počítača v sieti plus krátku informáciu o nainštalovanej verzii. Hovor bez kľúča zahŕňa prístup k funkcii hostiteľa param ($ Targets = [System.Net.Dns] :: GetHostName ()) funkcie PIDDecoderFromRegistry ($ digitalProductId) New-Variable -Name base24 -Value 'BCDFGHJKMPQRTVWXY2346789' ## -Option Const ## znaky používané v produktových kľúčoch Windows a Office Nová premenná - Názov dekódovaťLength - Hodnota 14 ## - Voľba konštanta ## - Šifrovaná dĺžka kľúča Nová premenná - Názov dekódovaťDĺžka - Hodnota 14 ## - Voliteľná konštanta ## Dĺžka šifrovaného kľúča produkt v bajtoch (znaky sú uložené v uzloch) Nová premenná - meno dekódovanéKey -Value ([System.String] :: Empty) ## Reťazec obsahujúci dešifrovaný produktový kľúč ## Kontrola, či produktový kľúč obsahuje 'N' (je to možné pre Windows 8 Kancelária 15) $ obsahujeN = ($ 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 ## Samotný proces dešifrovania pre ($ i = $ decodeStringLength; $ i -ge 0; $ i--) $ digitMapIndex = 0 pre ($ j = $ decodeLength; $ j -ge 0; $ j--) $ digitMapIndex = $ digitMapIndex * 256 -bX alebo $ digitalProductId [$ j] ## $ digitMapIndex - shl 8 -bX alebo $ digitalProductId [$ j] ## PS 4.0 $ digitalProductId [$ j] = [System.Math] :: Truncate ($ digitMapIndex / $ base24.Length) $ digitMapIndex = $ digitMapIndex% $ base24.Length $ decodedKey = $ decodedKey.Insert (0, $ base24 [$ digitMapIndex]) ## Vymazanie prvého znaku v kľúči a uvedenie 'N' na požadované miesto, ak ([System.Boolean] $ obsahujeN) $ firstLetterIndex = 0 pre ($ index = 0; $ index -lt $ decodeStringLength; $ index ++) if ($ decodedKey [0] -ne $ base24 [$ index]) pokračovať $ firstLetterIndex = $ index break $ keyWithN = $ decodedKey $ keyWithN = $ keyWithN.Remove (0, 1) $ keyWithN = $ keyWithN.Substring (0, $ firstLetterIndex) + 'N' + $ keyWithN.Remove (0, $ firstLetterIndex) $ decodedKey = $ keyWithN;  $ returnValue = $ decodedKey ## Vloženie pomlčky každých päť znakov pre ($ t = 20; $ t -ge 5; $ t - = 5) $ returnValue = $ returnValue.Insert ($ t, '-') return $ returnValue ## Main New-Variable -Name hklm -Value 2147483650 ## -Option Const Nová premenná -Name regPath -Value 'Software \ Microsoft \ Windows NT \ CurrentVersion' ## -Option Const Nová premenná -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 ## Constructor $ 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