Problem następujący: Miałem kiedyś stary komputer na którym zrobiłem upgrade z Windowsa 7 na Windows 10. Podczas jego użytkowania odczytałem klucz oprogramowania jakimś skryptem (niestety po latach okazało się że klucz został błędnie odczytany) Potem padła płyta główna. Dysk został z Win 10, prawdopodobnie jeszcze podczas użytkowania użyłem kolejnego dysku (po prostu zmieniłem) i na nim użytkowałem system.
I tutaj tak zmieniłem platformę na nowszą. Tamten dysk prawdopodobnie siedział w szafce 2 lata bez dostępu do internetu. Trzeci dysk na którym działał nowy PC, chciałem zaktywować Windowsa 10 właśnie za pomocą klucza ze starego kompa. Ale okazało się, że nim się nie da. (Przed tym myślałem nawet, że zaciągnie licencję z mail@outlook.com, powinna być powiązana licencja z kontem, ale tak się nie stało)
WindowsKeyInfo.txt (nie wiem co to za klucz, ale jest błędny)
Product Name: Windows 10 Pro
Product ID: 00000-00000-00000-00000 (zmieniłem na zera, bo pewnie powiązane z moim sprzętem)
Installed Key: VK7JG-NPHTM-C97JM-9MPGT-3V66T
Taki klucz zwrócił skrypt. Nie zwróciłem wtedy uwagi, że to nie ten którego potrzebowałem. Myślałem, że wszystko zakończyło się w porządku.
Ogólnie to sprawa z dyskami wyglądała następująco:
Dysk 0 - na którym był pierwszy system, czyli Win 10 z zaktualizowanej "siódemki" (STARA PLATFORMA)
Dysk 1 - aktywowany automatycznie za pomocą mail@outlook.com (STARA PLATFORMA)
Dysk 2 - — II —, na którym użyłem skryptu do odzyskania klucza systemu (STARA PLATFORMA)
Dysk 2.5 - potem znowu użytkowany system, więc to samo co poprzednie (STARA PLATFORMA)
Dysk 3 - NOWA PLATFORMA (nowy dysk i płyta), brak klucza
Skrypt ogólnie wyglądał tak: key.vbs
Option Explicit
Dim objshell,path,DigitalID, Result
Set objshell = CreateObject("WScript.Shell")
'Set registry key path
Path = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
'Registry key value
DigitalID = objshell.RegRead(Path & "DigitalProductId")
Dim ProductName,ProductID,ProductKey,ProductData
'Get ProductName, ProductID, ProductKey
ProductName = "Product Name: " & objshell.RegRead(Path & "ProductName")
ProductID = "Product ID: " & objshell.RegRead(Path & "ProductID")
ProductKey = "Installed Key: " & ConvertToKey(DigitalID)
ProductData = ProductName & vbNewLine & ProductID & vbNewLine & ProductKey
'Show messbox if save to a file
If vbYes = MsgBox(ProductData & vblf & vblf & "Save to a file?", vbYesNo + vbQuestion, "BackUp Windows Key Information") then
Save ProductData
End If
'Convert binary to chars
Function ConvertToKey(Key)
Const KeyOffset = 52
Dim isWin8, Maps, i, j, Current, KeyOutput, Last, keypart1, insert
'Check if OS is Windows 8
isWin8 = (Key(66) \ 6) And 1
Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
i = 24
Maps = "BCDFGHJKMPQRTVWXY2346789"
Do
Current= 0
j = 14
Do
Current = Current* 256
Current = Key(j + KeyOffset) + Current
Key(j + KeyOffset) = (Current \ 24)
Current=Current Mod 24
j = j -1
Loop While j >= 0
i = i -1
KeyOutput = Mid(Maps,Current+ 1, 1) & KeyOutput
Last = Current
Loop While i >= 0
If (isWin8 = 1) Then
keypart1 = Mid(KeyOutput, 2, Last)
insert = "N"
KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then KeyOutput = insert & KeyOutput
End If
ConvertToKey = Mid(KeyOutput, 1, 5) & "-" & Mid(KeyOutput, 6, 5) & "-" & Mid(KeyOutput, 11, 5) & "-" & Mid(KeyOutput, 16, 5) & "-" & Mid(KeyOutput, 21, 5)
End Function
'Save data to a file
Function Save(Data)
Dim fso, fName, txt,objshell,UserName
Set objshell = CreateObject("wscript.shell")
'Get current user name
UserName = objshell.ExpandEnvironmentStrings("%UserName%")
'Create a text file on desktop
fName = "C:\Users\" & UserName & "\Desktop\WindowsKeyInfo.txt"
Set fso = CreateObject("Scripting.FileSystemObject")
Set txt = fso.CreateTextFile(fName)
txt.Writeline Data
txt.Close
End Function
Wkurzyłem się bo nie miałem klucza Windows 10, a żeby nie pokazywał się znak wodny na nowym komputerze, wykonałem następujące polecenia:
slmgr /ipk yourlicensekey
slmgr /skms kms8.msguides.com
slmgr /ato
I teraz pasowałoby to usunąć. Ogólnie nie wiem co robią te polecenia (chciałbym wiedzieć). Wiem tylko, że nie jest to zalecane. I sprawdza się na krótki dystans. Chciałbym wprowadzić oryginalny klucz i najlepiej, żeby obyło się bez formatowania całego dysku. Bo ja oryginalny klucz cały czas posiadam! Tylko nie jest on odczytany.
Ogólnie tam gdzie był aktywowany Windows 10 płyta już nie jest sprawna. Więc jeśli podłącze właśnie ten dysk (Dysk 2), tylko mając inną płytę główną, czyli na nowej platformie, to prawidłowo mi odzyska klucz, czy nie jest już to możliwe?
O ile mi wiadomo Microsoft do iluś razy pozwala zmienić sprzęt (tzn. płytę, procesor). Tylko trzeba to jakoś zgłosić. Chyba nawet z poziomu Windows (nie próbowałem, nie wiem gdzie jest taka opcja, ale potrzebowałbym gdyby dalej były komplikacje z systemem)
Tutaj jeszcze na forum, był jakiś wątek na temat klucza i chyba polecali do wydobycia program ShowKeyPlus. To nadałby się do wydobycia klucza z (Dysk 2)? Bo pewnie nie ma już w systemie informacji o kluczu z Windows 7, a potrzeba jakoś wydobyć. Czy są jakieś inne programy, które prawidłowo odczytałyby klucz Win 10 (7)? Przynajmniej które dają sobie z tym radę.