管理者側で、Active Directoryドメインサービス(以降、AD)ユーザーのログオン日時(ADドメインへ認証した日時)やパスワード変更日時を把握したいケースがあります。
本記事では、ADユーザーのログオン日時とパスワード変更日時を確認するためのWindows PowerShell(以降、PowerShell)コマンドレットについて記載します。
事前準備
コマンドレットを実行する端末にPowerShell用のADモジュールがインストールされている必要があります。
ADモジュールのインストール方法はこちらのサイトを参照してください。
PowerShellコマンドレット
- コマンドレットを実行する端末でPowerShellを管理者として起動します。
- 以下コマンドレットを実行してCSVファイルをエクスポートします。なお、XXX箇所は情報を取得したいユーザーが所属するドメインやOUの情報を記載してください。
$DCs = Get-ADDomainController -Filter *
$Users = Get-ADUser -SearchBase "OU=XXX,DC=XXX,DC=XXX" -Filter * -Properties PasswordLastSet
$Results = foreach ($User in $Users) {
$LatestLogon = 0
foreach ($DC in $DCs) {
$Logon = (Get-ADUser $User.SamAccountName -Server $DC.HostName -Properties LastLogon).LastLogon
if ($Logon -gt $LatestLogon) {
$LatestLogon = $Logon
}
}
$LastLogonDate = [DateTime]::FromFileTime($LatestLogon)
$PasswordLastSetDate = $User.PasswordLastSet
[PSCustomObject]@{
Name = $User.Name
LastLogon = $LastLogonDate
PasswordLastSet = $PasswordLastSetDate
}
}
$Results | Export-Csv -Path "<任意のCSV出力場所>\<任意のファイル名>.csv" -NoTypeInformation -Encoding UTF8
コマンドレット実行後、以下のような内容のCSVファイルが出力されます。

- LastLogon:ユーザーのログオン日時
- PasswordLastSet:ユーザーのパスワード変更日時
なお、CSVファイルのエクスポートが不要な場合は、上記コマンドレットの「$Results」までを残し、「|Export-CSV」以降を削除してコマンドレットを実行します。
終わりに
本記事では、ADユーザーのログオン日時とパスワード変更日時を取得するためのコマンドレットを記載しました。
ぜひ参考にしてみてください。