Иногда бывает нужно проверить учётные данные какой-либо определённой пользовательской учётной записи в домене Active Directory, да ещё и на определённом контроллере домена. В сети можно найти несколько вариантов PowerShell скриптов, решающих подобную задачу. При этом большинство из них представляют собой некий массив кода. Однако быстро можно выполнить задачу с помощью всего одного PS-командлета Get-ADDomain. Пример с указанием distinguishedName домена, NetBIOS-имени контроллера домена и имени конкретной учётной записи пользователя:
Get-ADDomain -Identity "DC=sub,DC=holding,DC=com" -Server "kom-ad01-dc02" -Credential "SUB\petya"
При выполнении будет выдан запрос на ввод пароля указанной учётной записи, и если учётные данные указаны верно, то будет выведена информация о домене, в противном случае возникнет ошибка типа: “Get-ADDomain : Неправильное имя места назначения неверно, или сервер отклонил учетные данные клиента.”
О, прикольно, спасибо,
раньше пользовался так:
function Test-ADCredential {
[CmdletBinding()]
Param
(
[Parameter(Position=0, Mandatory=$true, HelpMessage='Доменные учетные данные domain.local\login:')]
[System.Management.Automation.PSCredential]
$Credential = (Get-Credential)
)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$DS = New-Object System.DirectoryServices.AccountManagement.PrincipalContext('domain')
return $DS.ValidateCredentials($Credential.UserName, $Credential.GetNetworkCredential().Password)
}