Kako ugotoviti ključ sistema Windows 8

V tem članku bomo govorili o tem, kako lahko najdete tipko Windows 8, s katero je sistem aktiviran. Spomnimo se, da je v sistemu Windows 8, tako kot v prejšnjih operacijskih sistemih družine Microsoft, ključ izdelka zaporedje 25 znakov, razdeljeno na 5 skupin po 5 znakov (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX) Ta tipka se uporablja za aktiviranje vseh različic sistema Windows 8.

Pri aktiviranju sistema Windows 8 morate upoštevati naslednje točke:

  • Tipko Windows 8 lahko uporabljate le za aktiviranje izdaje sistema Windows 8, ki mu je namenjena, in ne za nobenega drugega (tj. Uporaba tipke Windows 8 Pro ne bo delovala pri aktiviranju doma Windows 8).
  • OEM ključ lahko uporabite za aktiviranje OEM kopije sistema Windows 8 v istem računalniku, na katerem je bil prvič aktiviran, in na nobenem drugem
  • Ključ maloprodaja Windows 8 lahko aktivirate v katerem koli računalniku, vendar samo na enem samem

Ob nakupu maloprodaja različica sistema Windows 8 ima ključ izdelka v obliki nalepke, ki jo lahko prilepite na sistemsko enoto ali prenosnik, če kupite napravo s prednameščeno Windows 8,  OEM- ključ bo že prilepljen na ohišje naprave. Ta nalepka se imenuje Potrdilo o pristnosti (COA).

Vendar se pogosto zgodi, da besedilo na tako licencirani nalepki postane neberljivo (kava je bila razlita, drgnjena na kolena, preprosto izgubljena itd.). Kako lahko v tem primeru programsko najdete tipko Windows 8, da jo lahko pozneje znova aktivirate pri ponovni namestitvi sistema? Poleg tega bo morda treba preveriti sistem glede licenc in sovpadanja ključa, nameščenega v sistemu, in ključa na nalepki.

Aktivacijski ključ sistema Windows 8 je shranjen v registru, vendar ne v navadnem besedilu, temveč v šifriranem (kodiranju) osnova 24) In načeloma ga je mogoče od tam izvleči, dešifrirati in kopirati na kos papirja. Ključne informacije so shranjene v registrskem ključu HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ DigitalProductId, le ekstrahirati in dešifrirati ga moramo.

Na splošno je mogoče aktivirati ključ prek WMI. To lahko storite brez uporabe programov drugih proizvajalcev z uporabo orodij, ki so že na voljo v sistemu Windows 8: VBScrit in Powershell. Spodaj sta oba načina za določitev ključa sistema Windows 8.

Pridobite aktivacijski ključ Windows 8 z uporabo VBScript

  1. Ustvari novo besedilno datoteko z imenom get_windows_8_key.vbs in ga shranite na namizje
  2. Vanj prilepite naslednjo kodo
    Nastavite WshShell = CreateObject ("WScript.Shell") regKey = "HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \" DigitalProductId = WshShell.RegRead (regKey & "DigitalProductId") Win8ProductName = "Ime izdelka Windows": ime izdelka Windows: (regKey & "ProductName") & vbNewLine Win8ProductID = "ID izdelka Windows:" & WshShell.RegRead (regKey & "ProductID") & vbNewLine Win8ProductKey = ConvertToKey (DigitalProductId) strProductKey8 WinProductPame8 & Win8roductPame8 "WinProductPame8" WinProductPame8 "WinProductPame8" WinProductPame8 "WinNroduction & Winmerod" WinNroductPame "WinProductKame &" Win8roductPame8 "WinProductPame8" WinProductPame8 "WinNroductPame8" WinNroductPrime8 "WinNroductPame" Win7ProductName "WinProduktPrime8" WinNroductPameer "WinNroductPameer" Win7Proizvestite! Win8ProductID & strProductKey MsgBox (Win8ProductKey) MsgBox (Win8ProductID) Funkcija PretvoriToKey (regKey) Const KeyOffset = 52 isWin8 = (regKey (66) \ 6) in 1 regKey (66) = () in (OrFey (WW) 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 Medtem ko y> = 0 j = j -1 winKeyOutput = Sredina (Chars, Cur + 1, 1) & winKeyOutput Last = Cur Loop Medtem ko j> = 0 If (is Win8 = 1) Nato keypart1 = Mid (winKeyOutput, 2, Last) vstavite = "N" winKeyOutput = Zamenjajte (winKeyOutput, keypart1, keypart1 in vstavite, 2, 1, 0) Če je zadnji = 0 Potem winKeyOutput = vstavite & winKeyOutput End a = sredina (winKeyOutput, 1, 5) b = sredina (winKeyOutput, 6, 5) c = sredina (winKeyOutput, 11, 5) d = sredina (winKeyOutput, 16, 5) e = sredina (winKeyOutput, 21, 5) ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & končna funkcija
  3. Dvokliknite datoteko, po kateri naj se prikaže okno s ključem izdelka, ki je v njej prikazan. V našem primeru je sistem aktiviran s tipko Predogled izdaje Windows 8.

Pripravljen skript vbs lahko prenesete tukaj: get_windows_8_key_vbs.zip.

Kako najti aktivacijski ključ sistema Windows 8 s pomočjo Powershell-a

S programom Powerhell lahko najdete tudi ključ nameščenega sistema Windows 8.

  1. Ustvari datoteko s pripono get_windows_8_key.ps1 in vanj kopirajte naslednjo kodo:
    funkcija Get-WindowsKey ## pridobite ključ izdelka Windows iz katerega koli računalniškega parama ($ target = ".") $ hklm = 2147483650 $ regPath = "Programska oprema \ Microsoft \ Windows NT \ CurrentVersion" $ regValue = "DigitalProductId" Foreach ($ v $ target) $ 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šifrira dvojiške podatke, kodirane z bazo24, za ($ i = 24; $ i -ge 0; $ i--) $ k = 0 Za ($ j = 14; $ j -ge 0; $ j--) $ k = $ k * 256 -bxor $ binArray [$ j] $ binArray [$ j] = [matematika] :: odsek ($ k / 24) $ k = $ k% 24 $ productKey = $ charsArray [$ k] + $ productKey Če (($ i% 5 -eq 0) -and ($ i -ne 0)) $ productKey = "-" + $ productKey $ win32os = Get-WmiObject Win32_OperatingSystem-računalnik $ target $ obj = Nov objekt Object $ obj | Računalnik dodatkov za člane-vrednost vrednost $ target $ obj | Napis lastnine za člane Note-vrednost $ win32os.Caption $ obj | Dodatek za člane Lastnost CSDVersion -vrednoti $ win32os.CSDVersion $ obj | Add-Member Noteproperty OSArch-vrednost $ win32os.OSArchitecture $ obj | AddN member Noteproperty BuildNumber -vrednoti $ win32os.BuildNumber $ obj | Registrirana lastnost za Notesovo članko-vrednost vrednost $ win32os.RegisteredUser $ obj | Opredelitev lastnosti lastnine ProductID-vrednost $ win32os.SerialNumber $ obj | Opredelitev lastnosti nepremičnine ProductKey - vrednost $ productkey $ obj
  2. Zaženite ukazni poziv s skrbniškimi pravicami in v njem zaženite ukaz powerhell, da odprete konzolo PoSh
  3. V oknu, ki se prikaže, morate omogočiti izvajanje podpisanih skript z ukazom:
    Set-ExecutionPolicy RemoteSigned
  4. Izvršite ukaze
    Uvozni modul d: \ myfile.ps1; Get-windowskey
  5. Kot rezultat, se bo ključ nameščenega sistema Windows prikazal v oknu Powershell
  6. Če morate v oddaljenih računalnikih poiskati aktivacijske ključe, uporabite ukaz Get-WindowsKey "computer1", "serv-dc2", "romp-buh02"

Končan skript za ovrednotenje je tukaj: get_windows_8_key_ps.zip

Še ena različica skripta Powershell iz komentarjev akaNeo

   
## Izjava funkcije pridobitve ključa izdelka Windows ## Skript je zasnoval PowerShell različice 2.0 (velja za vse različice sistema Windows) Funkcija Get-WindowsProduct ## Funkcija vrne nameščen ključ sistema Windows iz katerega koli računalnika v omrežju in kratek podatek o nameščeni različici. Klic brez ključa vključuje dostop do gostitelja param ($ Targets = [System.Net.Dns] :: GetHostName ()) funkcija PIDDecoderFromRegistry ($ digitalProductId) New-Variable -Name base24 -Value 'BCDFGHJKMPQRTVWXY2346789' ## -Od znakov, ki se uporabljajo v ključih izdelkov Windows in Office New-Variable -Name decodeLength -Value 14 ## -Option Const ## Šifrirana dolžina ključa Nova spremenljivka -Name decodeLength -Value 14 ##-Možnost Const ## Dolžina šifriranega ključa izdelek v bajtih (znaki so shranjeni v nibljih) New-Variable -Name decodedKey -Value ([System.String] :: Empty) ## String, ki vsebuje dešifriran ključ izdelka ## Preverjanje, če ključ izdelka vsebuje 'N' (to je mogoče za Windows 8 Office 15) $ vsebujeN = ($ 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 ## Sam postopek dešifriranja za ($ i = $ decodeStringLength; $ i -ge 0; $ i--) $ digitMapIndex = 0 za ($ 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] :: Skrčite ($ digitMapIndex / $ base24.Length) $ digitMapIndex = $ digitMapIndex% $ base24.Length $ decodedKey = $ decodedKey.Insert (0, $ base24 [$ digitMapIndex]) ## Brisanje prvega znaka v ključu in 'N' v želeni položaj, če ([System.Boolean] $ vsebujeN) $ firstLetterIndex = 0 za ($ index = 0; $ index -lt $ decodeStringLength; $ index ++) if ($ decodedKey [0] -ne $ base24 [$ index]) nadaljevanje $ firstLetterIndex = $ index break $ keyWithN = $ decodedKey $ keyWithN = $ keyWithN.Remove (0, 1) $ keyWithN = $ keyWithN.Substring (0, $ firstLetterIndex) + 'N' + $ keyWithN.Remove (0, $ firstLetterIndex) $ decodedKey = $ keyWithN;  $ returnValue = $ decodedKey ## Vstavite črtico vsakih pet znakov za ($ 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 'Programska oprema \ Microsoft \ Windows NT \ CurrentVersion' ## -Option Const New-Variable -Name regValue -Value 'DigitalProductId' ## -Option Const Foreach ($ target v $ 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 $ izdelek | Add-Member -MemberType 'NoteProperty' -Name 'Computer' -Value $ target $ product | Add-Member -MemberType 'NoteProperty' -Name 'Naziv' -Value $ win32os.Caption $ izdelek | Add-Member -MemberType 'NoteProperty' -Name 'CSDVersion' -Value $ win32os.CSDVersion $ izdelek | Add-Member -MemberType 'NoteProperty' -Name 'OSArch' -Value $ win32os.OSArchitecture $ izdelek | Add-Member -MemberType 'NoteProperty' -Name 'BuildNumber' -Value $ win32os.BuildNumber $ izdelek | Add-Member -MemberType 'NoteProperty' -Name 'RegisteredTo' -Value $ win32os.RegisteredUser $ izdelek | Add-Member -MemberType 'NoteProperty' -Name 'ProductID' -Value $ win32os.SerialNumber $ product | Add-Member -MemberType 'NoteProperty' -Name 'ProductKey' -Value (PIDDecoderFromRegistry ($ binArray)) Pisanje-izhod $ product ## End Get-WindowsProduct