web-dev-qa-db-ja.com

ユーザーの資格情報を確認するためのWindowsコマンドラインユーティリティはありますか?

Windowsプラットフォームで、資格情報を確認するためにusernamepassworddomain nameを渡すことができるコマンドラインユーティリティはありますか(または、アカウントにエラーを与える可能性があります)無効になっているか、存在しないか、期限切れです)?

19
wiki

Net Useコマンドを使用して、コマンドラインでユーザー名とパスワードを(Net Use \\unc\path /user:username passwordの形式で)指定し、返されたerrorlevelをチェックして、認証情報が有効かどうかを確認できます。

runasコマンドも機能しますが、出力のテストにさらに時間がかかる場合があります。

アカウントの存在について認証情報をテストするには、Net Userまたはdsqueryを使用する必要があります。 Net Userコマンドでは、アカウントがロックアウトされているかどうかはわかりませんが、ユーザーアカウントのlockoutTime属性をクエリするとわかります。

14
Evan Anderson

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:\>

リファレンス: https://stackoverflow.com/questions/7663219/how-to-authenticate-an-user-in-activedirectory-with-powershell

14
user224310

ADはLDAPサーバーなので、追加したいのは、LDAPコマンドラインツールを使用してそれにバインドし、アクティブかどうかを確認することです。より高い権限を持つユーザーとしてバインドし、LDAPの原則を使用してADを検索することもできます。

しかし、ねえ、Powershellに問題はありません。

1
Gerard ONeill

これを試して:

Net Use \\%userdnsdomain% /user:%userdomain%\%username% *

パスワードがOKの場合、%Errorlevel%は0です。

文の最後のアスタリスクは、パスワードを要求することを強制します。

1
Vicente G.