Ebben a cikkben arról beszélünk, hogyan lehet megtudni a Windows 8 kulcsot, amellyel a rendszert aktiválják. Emlékezzünk arra, hogy a Windows 8-ban, mint a Microsoft család korábbi operációs rendszereiben is, a termékkulcs 25 karakterből áll, 5-ös 5 karakterből álló csoportba osztva (XXXXX-XXXXX-XXXXX-XXXXX-XXXXX). Ezt a kulcsot a Windows 8 összes verziójának aktiválására használják.
A Windows 8 aktiválásakor a következő pontokat kell figyelembe vennie:
- A Windows 8 kulcs csak a Windows 8 kiadás aktiválásához használható, amelyre szánták, és nem máshoz (azaz a Windows 8 Pro kulcs használata nem fog működni a Windows 8 home aktiválásához).
- OEM a kulcs felhasználható a Windows 8 OEM másolatának aktiválására ugyanazon a számítógépen, amelyen először aktiválta, és senki máson
- A kulcs kiskereskedelem A Windows 8 bármilyen számítógépen aktiválható, de csak egyszerre
Vásárláskor kiskereskedelem A Windows 8 verziója esetén a termékkulcs matrica formájában érkezik, amelyet rá lehet ragasztani a rendszeregységre vagy a laptopra, ha olyan készüléket vásárol, amelynek előre telepített Windows 8, OEM- a kulcsot már az eszköz tokjához ragasztják. Ezt a matricát hívják Hitelességi igazolás (COA).
Gyakran előfordul azonban, hogy valamilyen „tragikus okból” az ilyen engedéllyel rendelkező matrica szövege olvashatatlanná válik (kávé kiömlött, térdre dörzsölve, csak elveszett stb.). Hogyan lehet ebben az esetben programozottan megtalálni a Windows 8 kulcsot, hogy később újra aktiválhassa a rendszer újratelepítésekor? Ezenkívül szükség lehet a rendszer engedélyezési ellenőrzésére, valamint a rendszerbe telepített kulcs és a matrica kulcsának egybeesésére..
A Windows 8 aktiválási kulcsát a rendszerleíró adatbázisban tárolja, de nem egyszerű szövegben, hanem titkosítva (kódolás 24. alap). És elvileg onnan kinyerhető, dekódolható és papírra másolható. A kulcsinformációkat a rendszerleíró kulcs tárolja HKLM \ SZOFTVER \ Microsoft \ Windows NT \ CurrentVersion \ DigitalProductId, csak ki kell vonnunk és visszafejteni azt.
Általában az aktivált kulcsot a WMI-n keresztül lehet letölteni. Ezt megteheti harmadik féltől származó programok használata nélkül, a Windows 8-on már elérhető eszközökkel: VBScrit és Powershell. Az alábbiakban egyaránt megtalálhatjuk a Windows 8 kulcsát.
Szerezze be a Windows 8 aktiválási kulcsát a VBScript használatával
- Hozzon létre egy új szöveges fájlt get_windows_8_key.vbs és mentse az asztalra
- Illessze be a következő kódot
Set WshShell = CreateObject ("WScript.Shell") regKey = "HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \" DigitalProductId = WshShell.RegRead (regKey & "DigitalProductId") Win8ProductName = "Windows terméknév:" (regKey & "ProductName") & vbNewLine Win8ProductID = "Windows termékazonosító:" & WshShell.RegRead (regKey & "ProductID") és vbNewLine Win8ProductKey = ConvertToKey (DigitalProductId) strProductKamePame8 Win8 & WinProductName = "Windows 8 Key:" Win8ProductID & strProductKey MsgBox (Win8ProductKey) MsgBox (Win8ProductID) Funkció ConvertToKey (regKey) Const KeyOffset = 52 isWin8 = (regKey (66) \ 6) és 1 regKey (66) = (regKey (66) és HF7) vagy (HF7) vagy 2) * 4) j = 24 karakter = "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 hurok, míg y> = 0 j = j -1 winKeyOutput = Mid (karakterek, Cur + 1, 1) és winKeyOutput Utolsó = Cur hurok, míg j> = 0 If (van Win8 = 1) Akkor keypart1 = Mid (winKeyOutput, 2, Last) insert = "N" winKeyOutput = Csere (winKeyOutput, keypart1, keypart1 & insert, 2, 1, 0) Ha Utolsó = 0, akkor winKeyOutput = insert & winKeyOutput End If a = közepes (winKeyOutput, 1, 5) b = közepes (winKeyOutput, 6, 5) c = közepes (winKeyOutput, 11, 5) d = közepes (winKeyOutput, 16, 5) e = közepes (winKeyOutput, 21, 5) ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e End Function
- Kattintson duplán a fájlra, miután megjelenik egy ablak, amelyben megjelenik a termékkulcs. Esetünkben a rendszert a Windows 8 Release Preview kulcs aktiválja.
A kész vbs szkript letölthető itt: get_windows_8_key_vbs.zip.
Hogyan lehet megtudni a Windows 8 aktiválási kulcsát a Powershell használatával
A Powerhell használatával megtalálhatja a telepített Windows 8 kulcsát is.
- Hozzon létre egy fájlt a kiterjesztéssel get_windows_8_key.ps1 és másolja bele a következő kódot:
függvény Get-WindowsKey ## a Windows termékkulcs lekérése bármely PC paramtól ($ célok = ".") $ hklm = 2147483650 $ regPath = "Szoftver \ Microsoft \ Windows NT \ CurrentVersion" $ regValue = "DigitalProductId" Foreach ($ cél a $ célokban) $ 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 "," 8 "," 9 "## dekódolja a base24 kódolt bináris adatait a következőre: ($ i = 24; $ i-ge 0; $ i--) $ k = 0 Mert ($ j = 14; $ j -ge 0; $ j--) $ k = $ k * 256 -bxor $ binArray [$ j] $ binArray [$ j] = [matematika] :: csonkolás ($ k / 24) $ k = $ k% 24 $ productKey = $ charsArray [$ k] + $ productKey If (($ i% 5 -eq 0) -ja ($ i -ne 0)) $ productKey = "-" + $ productKey $ win32os = Get-WmiObject Win32_OperatingSystem -computer $ target $ obj = New-Object Object $ obj | Tagjegyzék-kiegészítő számítógép Számítógép -érték $ target $ obj | Tagjegyzék-kiegészítő felirat -érték $ win32os.Caption $ obj | .érték Tagjegyzék-kiegészítő CSDVersion -érték $ win32os.CSDVersion $ obj | Tagjegyzék-kiegészítő OSArch - érték $ win32os.OSArchitecture $ obj | Tagjegyzék-kiegészítő tulajdonság BuildNumber -érték $ win32os.BuildNumber $ obj | Tagjelölt tulajdonság RegisteredTo-érték $ win32os.RegisteredUser $ obj | Tagjelölt tulajdonság ProductID -érték $ win32os.SerialNumber $ obj | Tagjelölt tulajdonság ProductKey -érték $ productkey $ obj
- Futtassa a parancssort a rendszergazdai jogosultságokkal, és futtassa a benne található powershell parancsot a PoSh konzol megnyitásához
- A megjelenő ablakban engedélyeznie kell az alá nem írt szkriptek végrehajtását a következő paranccsal:
Set-ExecutionPolicy RemoteSigned
- Parancsok végrehajtása
D modul importálása: \ myfile.ps1; Get-Windows-billentyű
- Ennek eredményeként a telepített Windows kulcs megjelenik a Powershell ablakban
- Ha aktiválási kulcsot kell találnia a távoli számítógépeken, akkor használja a Get-WindowsKey "computer1", "serv-dc2", "romp-buh02" parancsot.
A kész PowerShell-parancsfájl itt található: get_windows_8_key_ps.zip
A Powershell szkript egy másik verziója a akaNeo## A Windows termékkulcs beszerzési funkciójának nyilatkozata ## A szkriptet a PowerShell 2.0 verziója fejti ki (a Windows összes verziójára vonatkozik) Funkció Get-WindowsProduct ## A függvény a telepített Windows kulcsot a hálózat bármelyik számítógépről adja vissza, valamint egy apró információt a telepített verzióról. A kulcs nélküli híváshoz hozzáférést kell biztosítani a param hosthoz ($ Targets = [System.Net.Dns] :: GetHostName ()) PIDDecoderFromRegistry ($ digitalProductId) függvény New-Variable -Name base24 -Value 'BCDFGHJKMPQRTVWXY2346789' ## -Option Const ## karakterek, amelyeket a Windows és az Office termékkulcsokban használnak Új-Változó-Név decodeLength-Érték 14 ## -Opció Const ## Titkosított kulcshossz New-Variable -Name decodeLength -Value 14 ## -Option Const ## A titkosított kulcs hossza a termék bájtban (a karaktereket a nibblek tárolják) Új változó -Név dekódolt kulcs - Érték ([System.String] :: Üres) ## A dekódolt termékkulcsot tartalmazó karakterlánc ## Ellenőrizze, hogy a termékkulcs tartalmaz-e N-et (ez Windows esetén lehetséges) 8 Office 15) $ tartalmazN = ($ 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 ## Maga a dekódolási folyamat ($ i = $ decodeStringLength; $ i-0; $ i--) $ digitMapIndex = 0 for ($ j = $ decodeLength; $ j -ge 0; $ j--) $ digitMapIndex = $ digitMapIndex * 256 -bXor $ digitalProductId [$ j] ## $ digitMapIndex - shl 8 -bX vagy $ digitalProductId [$ j] ## PS 4.0 $ digitalProductId [$ j] = [System.Math] :: Csonkítás ($ digitMapIndex / $ base24.Length) $ digitMapIndex = $ digitMapIndex% $ base24.Length $ decodedKey = $ decodedKey.Insert (0, $ base24 [$ digitMapIndex]) ## A kulcs első karakterének törlése és az N betűt a kívánt pozícióba helyezése, ha ([System.Boolean] $ tartalmazN) $ firstLetterIndex = 0 for ($ index = 0; $ index -lt $ decodeStringLength; $ index ++) if ($ decodedKey [0] -ne $ base24 [$ index]) folytatódik $ firstLetterIndex = $ index break $ keyWithN = $ decodedKey $ keyWithN = $ keyWithN.Remove (0, 1) $ keyWithN = $ keyWithN.Substring (0, $ firstLetterIndex) + 'N' + $ keyWithN.Remove (0, $ firstLetterIndex) $ decodedKey = $ keyWithN; $ returnValue = $ decodedKey ## Minden öt karakterből álló kötőjelet beillesztve a következőhöz: ($ t = 20; $ t-5; $ t - = 5) $ returnValue = $ returnValue.Insert ($ t, '-') return $ returnValue ## Fő új változó - Név hklm - Érték 2147483650 ## - Opció Const Új változó - Név regPath - Érték 'Szoftver \ Microsoft \ Windows NT \ CurrentVersion' ## - Opció Const Új változó - Név regValue -A 'DigitalProductId' érték ## -Opció Const Foreach ($ cél $ célokban) $ win32os = $ null $ wmi = [WMIClass] "\\ $ target \ root \ alapértelmezett: 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' -Név 'Computer' -Érték $ target $ product | Tag-tag -MemberType 'NoteProperty' -Név 'Caption' -Érték $ win32os.Caption $ termék | Tag-tag -MemberType 'NoteProperty' -Név 'CSDVersion' -Érték $ win32os.CSDVersion $ termék | Tag-tag -MemberType 'NoteProperty' -Név 'OSArch' -Érték $ win32os.OSArchitecture $ termék | Tag-tag -MemberType 'NoteProperty' -Név 'BuildNumber' -Érték $ win32os.BuildNumber $ termék | Tag-tag -MemberType 'NoteProperty' -Név 'RegisteredTo' -Érték $ win32os.RegisteredUser $ termék | Tag-tag -MemberType 'NoteProperty' -Név 'ProductID' -Érték $ win32os.SerialNumber $ termék | Add-Member -MemberType 'NoteProperty' -Név 'ProductKey' -Érték (PIDDecoderFromRegistry ($ binArray)) Write-Output $ product ## End a Get-WindowsProduct befejezése