Windowsプラットフォームで、資格情報を確認するためにusername
、password
domain name
を渡すことができるコマンドラインユーティリティはありますか(または、アカウントにエラーを与える可能性があります)無効になっているか、存在しないか、期限切れです)?
Net Use
コマンドを使用して、コマンドラインでユーザー名とパスワードを(Net Use \\unc\path /user:username password
の形式で)指定し、返されたerrorlevel
をチェックして、認証情報が有効かどうかを確認できます。
runas
コマンドも機能しますが、出力のテストにさらに時間がかかる場合があります。
アカウントの存在について認証情報をテストするには、Net User
またはdsquery
を使用する必要があります。 Net User
コマンドでは、アカウントがロックアウトされているかどうかはわかりませんが、ユーザーアカウントのlockoutTime
属性をクエリするとわかります。
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:\>
ADはLDAPサーバーなので、追加したいのは、LDAPコマンドラインツールを使用してそれにバインドし、アクティブかどうかを確認することです。より高い権限を持つユーザーとしてバインドし、LDAPの原則を使用してADを検索することもできます。
しかし、ねえ、Powershellに問題はありません。
これを試して:
Net Use \\%userdnsdomain% /user:%userdomain%\%username% *
パスワードがOKの場合、%Errorlevel%は0です。
文の最後のアスタリスクは、パスワードを要求することを強制します。