Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Как без прог типа produkey получить ключ, который ввели при установке (http://forum.oszone.net/showthread.php?t=278413)

McLotos 26-02-2014 20:21 2316248

Как без прог типа produkey получить ключ, который ввели при установке
 
Добрый вечер. Имеется вот такой скриптик
читать дальше »
Код:

Set WshShell = CreateObject("WScript.Shell")
regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId")
WinProductName = "Windows Product Name: " & WshShell.RegRead(regKey & "ProductName") & vbNewLine
WinProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine
WinProductKey = ConvertToKey(DigitalProductId)
strProductKey ="Windows Key: " & WinProductKey
WinProductID = WinProductName & WinProductID & strProductKey
MsgBox(WinProductKey)
MsgBox(WinProductID)
Function ConvertToKey(regKey)
Const KeyOffset = 52
isWin = (regKey(66) \ 6) And 1
regKey(66) = (regKey(66) And &HF7) Or ((isWin 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 (isWin = 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 & "-" & e
End Function


Его задача получить ключ, который был введён при установке системы. Написан на VBS, работает идеально, но хотелось бы сделать что-то подобное только для получения ключей с большого количества машин. Конечно имея права админа домена можно легко повесить этот скрипт в автозагрузку всех пользователей и заставить его сохранить результат работы в текстовый файл на каком-нибудь из файловых-серверов. Но может кто-нибудь подскажет более изящное решение этой задачи? ну так чтобы не беспокоить ДК по мелочам =). Раз уж тема находится а разделе Клиентские ОС, то поставлю вопрос так:
Подскажите, в каком формате (каким методом/алгоритмом) шифруется такая информация в реестре.

Iska 26-02-2014 21:34 2316280

Цитата:

Цитата McLotos
Конечно имея права админа домена можно легко повесить этот скрипт в автозагрузку всех пользователей и заставить его сохранить результат работы в текстовый файл на каком-нибудь из файловых-серверов. »

Ну, так в чём проблема?

Цитата:

Цитата McLotos
Но может кто-нибудь подскажет более изящное решение этой задачи? »

То, что Вы изложили выше и есть самое изящное решение. Разве что для последующей обработки складывать стоит в базу данных, а не в текстовый файл (теоретически могут наложиться операции от разных машин). Менее изящное — собрать информацию «здесь и сейчас».

McLotos 26-02-2014 22:46 2316322

Iska, наложиться они не смогут если имя файла=имя компьютера.
База данных? MySQL? Вариант, я почему-то о нём не подумал =)

Iska 26-02-2014 23:50 2316365

Ну, я вообще-то имел в виду MS SQL (если он уже есть, конечно — например в «упряжке» с 1С; я не буду врать, допустимо ли здесь будет использование Express Edition) или OLEDB для доступа к .mdb.

McLotos 27-02-2014 09:35 2316523

=(
у меня нет лицензии на MS SQL Server. А 1С стоит на Ubuntu+PostgreSQL

Iska 27-02-2014 09:53 2316532

Цитата:

Цитата McLotos
у меня нет лицензии на MS SQL Server. »

Попробуйте обычный «.mdb».

Цитата:

Цитата McLotos
PostgreSQL »

Тут я пас.

McLotos 28-02-2014 07:26 2317074

Iska, а подскажите как получить ключ office14
Ну у всех предыдущих версий можно было вытащить ключ из реестра, а в 2010 можно получить только кусочек ключа используя скрипт ospp
А как получить полный ключ?

Iska 28-02-2014 14:04 2317240

McLotos, насколько я знаю, если не был сохранён в реестре (или же был удалён оттуда впоследствии) — то никак. Только:
Цитата:

Цитата McLotos
кусочек ключа »



Время: 23:03.

Время: 23:03.
© OSzone.net 2001-