Что нового

Получение сведений из системы о лицензионных ключах майкрософта

vovsla

Осваивающий
Сообщения
607
Репутация
36
Требуется получить последнюю часть ключа Win.
Получить часть ключа самой Win можно получить командой slmgr /dli, при таком способе появляется информационное окно.
Есть какой-то способ получения ключа без появления окон?

И второй вопрос. У Win8/Win10 электронный ключ прошивается в биос. Как получить последнюю часть ключа которая зашита в биосе?
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Alofa сказал(а):
http://autoit-script.ru/index.php?topic=19789.0

Рассматриваемые варианты по ссылке под Win10 не работают.

У меня получился вот такой вариант получения ключа из Win
Код:
#include <AutoItConstants.au3>

Func GetWinKey()
	$STDOut=Run(@ComSpec&' cmd /c cscript '&@SystemDir&'\slmgr.vbs /dli', '', @SW_HIDE, $STDOUT_CHILD)
	Dim $STDArr[1]

	While 1
    $STDOutR = StdoutRead($STDOut)
    If @error Then ExitLoop
		$String=StringSplit($STDOutR, @CRLF)
		For $Num=1 To $String[0]
		   If StringInStr($String[$Num], 'бвЁз­л© Є«оз Їа®¤гЄв') Then
			  $KeyPart=StringSplit($String[$Num], ' ')
			  $WinKey=$KeyPart[$KeyPart[0]]
			  ExitLoop
		    EndIf
		 Next
	Wend

	Return $WinKey
EndFunc


Остался вопрос как получить ключ прошитый в биосе...
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Ключ из биоса можно получить утилитой MSDMTable

Код:
Func GetBIOSKey()
	$STDOut=Run(@ComSpec&' cmd /c MSDMTable.exe', '', @SW_HIDE, $STDOUT_CHILD)
	Dim $STDArr[1]

	$BIOSKey=''

	While 1
    $STDOutR = StdoutRead($STDOut)
    If @error Then ExitLoop
		$String=StringSplit($STDOutR, @CRLF)
		For $Num=1 To $String[0]
		   If StringInStr($String[$Num], 'Product key') Then
			  If StringInStr($String[$Num], '-') Then
				$KeyPart=StringSplit($String[$Num], '-')
				$BIOSKey=$KeyPart[$KeyPart[0]]
				ExitLoop
			  EndIf
		    EndIf
		 Next
	Wend

	Return $BIOSKey
EndFunc
 
Верх