Что нового

Как проверить правильность пароля для пользователя windows?

mef-t

Осваивающий
Сообщения
306
Репутация
30
Добрый день.

Вопрос в названии темы.
Грубо говоря есть пользователь и пароль. Нужно узнать, правильный ли это пароль.

Пробовал такой код:
Код:
$proc = RunAs('Пользователь', @ComputerName, 'Пароль', 2, 'notepad.exe')


Если пароль не подходит, то приложение все равно будет запущено, но от имени пользователя, запустившего программу.

Как я понимаю, нужно искать библиотеку Windows, с нужной функцией. Но не смог найти.
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
Есть вариант использовать функцию
Код:
BOOL LogonUser(
  _In_     LPTSTR  lpszUsername,
  _In_opt_ LPTSTR  lpszDomain,
  _In_opt_ LPTSTR  lpszPassword,
  _In_     DWORD   dwLogonType,
  _In_     DWORD   dwLogonProvider,
  _Out_    PHANDLE phToken
);
Но так и не получилось реализовать
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Код:
$d_LogonUser = DllStructCreate("HANDLE")
Local Const $LOGON32_LOGON_INTERACTIVE = 2
DllCall("advapi32.dll", "BOOLEAN", "LogonUser", "str", @UserName, "str", @ComputerName, "str", пароль, "dword", $LOGON32_LOGON_INTERACTIVE, "dword", 0, "ptr", DllStructGetPtr($d_LogonUser))

			If Not DllStructGetData($d_LogonUser, 1) Then
;не вошел
			EndIf
 
Автор
mef-t

mef-t

Осваивающий
Сообщения
306
Репутация
30
Спасибо. Работает
 
Верх