使われていない(≒長期間ログインしていない)ADユーザーを無効にしたい。PowerShellで全ユーザーの最終ログオン日時を取得するコマンドを調べたので備忘メモを残しておきます。
前提条件
- PowerShell バージョン 4.0
- ADサーバー Windows Server 2012 R2 Standard
作業
以下、最終形までの道のりです
ユーザー一覧を取得
まずはユーザー一覧を取得
Get-ADUser -Filter *
出力されない項目があるので追加します(LastLogon, LastLogonTimestamp, WhenCreated)
Get-ADUser -Filter * -Properties LastLogon, LastLogonTimestamp, WhenCreated
横並び(表形式)に変換
縦並びでズラズラと表示されるので横並びに変換しました
Get-ADUser -Filter * -Properties LastLogon, LastLogonTimestamp, WhenCreated|Format-Table
項目が多すぎるので必要な項目を指定
Get-ADUser -Filter * -Properties LastLogon, LastLogonTimestamp, WhenCreated|
Format-Table SamAccountName, LastLogon, LastLogonTimestamp, WhenCreated
日時を読みやすく変換(LastLogonとLastLogonTimestamp)
Get-ADUser -Filter * -Properties LastLogon, LastLogonTimestamp, WhenCreated|
Format-Table SamAccountName,
@{name='LastLogon';expression={[DateTime]::FromFileTime($_.LastLogon)}},
@{name='LastLogonTimestamp';expression={[DateTime]::FromFileTime($_.LastLogonTimestamp)}},
WhenCreated
必要に応じてテキスト出力
テキストに出力しました。あとはテキストエディタでタブ区切りに変換してExcelに貼り付けての作業。
【最終形】
Get-ADUser -Filter * -Properties LastLogon, LastLogonTimestamp, WhenCreated|
Format-Table SamAccountName,
@{name='LastLogon';expression={[DateTime]::FromFileTime($_.LastLogon)}},
@{name='LastLogonTimestamp';expression={[DateTime]::FromFileTime($_.LastLogonTimestamp)}},
WhenCreated|
Out-File 'C:\TEMP\aaa.txt'