пятница, 24 апреля 2015 г.

Получаем дистрибутив OEM windows 8.1

Задача:
Имеется ноутбук с активированной W8.1, нужно выполнить чистую установку на новый винчестер.
Скачиваем утилиту тут:
http://windows.microsoft.com/ru-ru/windows-8/create-reset-refresh-media
Приготавливаем USB Flash (4 Гб и более) или DVD (Нужен интернет).
Утилита сама зашьет текущий ключ и некоторые обновления на новый носитель.
Устанавливаем на новый винчестер.
Активируем обычным образом.
На всякий случай стоит сохранить ключ, узнать его можно так:
http://answers.microsoft.com/ru-ru/windows/wiki/windows_8-performance/%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C/e03d2b09-070c-4d29-ac8b-72a13230511c

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") & vbNewLineWin8ProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLineWin8ProductKey = ConvertToKey(DigitalProductId)strProductKey ="Windows 8 Key: " & Win8ProductKeyWin8ProductID = 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 & "-" & eEnd Function