На платформе 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 все в порядке!