Проверка учетных данных пользователя 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

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

Если скрипт вернул 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 .
admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago