Проверка учетных данных пользователя AD из скрипта PowerShell

В скриптах PowerShell, в которых у пользователя запрашиваются его имя и пароль, прежде чем приступать к выполнению действий иногда нужно сначала протестировать валидность введенных учетных данных. Если пользователь ввел неверные имя пользователя и пароль, нужно определить это и запросить их еще раз.

Если нужно проверить учетные данные пользователя в текущем домене, воспользуйтесь следующим скриптом PowerShell.

$creds=get-credential
Function Test-ADCredentials {
param($username, $password)
(New-Object DirectoryServices.DirectoryEntry "",$username,$password).psbase.name -ne $null
}
Test-ADCredentials -username $creds.UserName -password $creds.GetNetworkCredential().password

PowerShell скрипт для тестирования пароля пользования в домене

Введите имя доменного пользователя и его пароль в скрипте (можно использовать формат username , domainusername или [email protected] ). Если указаны действительные учетные данные пользователя, скрипт вернет True .

тестирование пароля учетной записи из скрипта PowerShell

Если скрипт вернул False , возможные причины:

  • Неверное имя пользователя (проверьте, что пользователь существует) или пароль
  • Учетная запись пользователя в AD отключена или временно заблокирована
  • Домен недоступен
Этот PowerShell скрипт не использует PowerShell модуль для Active Directory из набора RSAT и его можно использовать для тестирования учетных данных пользователя с любого Windows компьютера.

Если нужно подключиться к контроллеру домена с компьютера в рабочей группе или другого домена, нужно указать LDAP строку для подключения к DC. Замените 4 строку на:

(New-Object System.DirectoryServices.DirectoryEntry 'LDAP://DC=winitpo,DC=loc', $username, $password).psbase.name -ne $null

Или можно подключиться к контроллеру домена по IP адресу:

(New-Object System.DirectoryServices.DirectoryEntry 'LDAP://192.168.158.10', $username, $password).psbase.name -ne $null

Если пользователь добавлен в защищенную группу ‘Protected Users’, нужно указывать имя пользователя с доменом ( remontkausername или [email protected] ). В этом случае будет использоваться Kerberos аутентификация, а не NTLM .

EnglishRussianUkrainian