На платформе Windows, есть ли какая-либо утилита командной строки, которую я могу передать username
, password
domain name
чтобы проверить учетные данные (или, возможно, выдать ошибку, что учетная запись отключена, не существует или просрочена)?
На платформе Windows, есть ли какая-либо утилита командной строки, которую я могу передать username
, password
domain name
чтобы проверить учетные данные (или, возможно, выдать ошибку, что учетная запись отключена, не существует или просрочена)?
Ответы:
Вы можете использовать net use
команду, указав имя пользователя и пароль в командной строке (в форме net use \\unc\path /user:username password
и проверить errorlevel
возвращаемое, чтобы убедиться, что учетные данные действительны.
Команда также runas
будет работать, за исключением того, что у вас будет сложнее протестировать вывод.
Проверка учетных данных на наличие учетной записи будет зависеть от использования net user
или dsquery
. Команда net user
не скажет вам, заблокирована ли учетная запись, но запрос lockoutTime
атрибута учетной записи пользователя может сказать вам об этом.
runas /user:username cmd
откроет новое окно командной строки, как username
если бы вы указали действительный пароль и этот пользователь мог войти на этот компьютер. Я обычно открываю оболочку, чтобы проверить, что пароль по-прежнему используется по умолчанию на основе их личной информации, которую я могу найти.
В Powershell:
Function Test-ADAuthentication {
param($username,$password)
(new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
}
PS C:\> Test-ADAuthentication "dom\myusername" "mypassword"
True
PS C:\>
Ссылка: /programming/7663219/how-to-authenticate-an-user-in-activedirectory-with-powershell
ObjectNotFound: (Test-ADAuthentication:String) [], CommandNotFoundException
сюда. Это работает исключительно на контроллере домена, а не для локальных учетных записей?
Test-ADAuthentication
не встроено в PowerShell
$pass = Read-Host -assecurestring 'Enter password'
Просто хотел добавить, что, поскольку AD является сервером LDAP, вы можете использовать инструмент командной строки LDAP для «привязки» к нему, таким образом подтверждая, активен он или нет. Вы также можете связываться как пользователь с более высокими привилегиями, а затем выполнять поиск AD, используя принципы LDAP.
Но эй, с Powershell все в порядке!