PowerShell で期限切れのユーザー アカウント一覧を取得する方法
Active Directory 管理者が行う最も重要なタスクの1つは、期限切れのユーザー アカウントが適時に報告され、すぐに削除または無効化するための対応が取られるようにすることです。 有効期限を設定したユーザー アカウントは、作成されるのは一時的である点に注意してください。たとえば、ベンダーが Active Directory にログオンできるように、複数のユーザー アカウントを作成したことがあるかもしれません。同様に、請負業者のためにユーザー アカウントを作成している場合もあります。期限切れになっているアカウントを確認したい場合は、次の PowerShell コマンドを実行してください:
Search-ADAccount -Server $ThisDomain -Credential $Creds -AccountExpired -UsersOnly -ResultPageSize 2000 -resultSetSize $null| Select-Object Name, SamAccountName, DistinguishedName
今回は、Search-ADAccount PowerShell cmdletを再度使用しますが、今回は別のスイッチを使います。使用するスイッチは AccountExpired です。名前のとおり、AccountExpired スイッチは、有効期限が切れたユーザーアカウントを収集するのに役立ちます。
PowerShell を使ってアカウントの有効期限(失効日)を取得する方法
Active Directory にある有効(有効化)ユーザーすべての AD account expiration date を取得するには、Get-ADUser cmdletに -AccountExpirationDate プロパティを指定して使用します。次のスクリプトを、Windows Server 上の PowerShell ISE で実行してください:
Get-ADUser -Filter 'enabled -eq $true' -Properties AccountExpirationDate | Select sAMAccountName, distinguishedName, AccountExpirationDate
AD ユーザーの一覧全体について、有効期限(失効日)の日付と時刻が取得できます。
特定のグループの要約が必要な場合は、-SearchBase パラメーターを追加してスクリプトを変更する必要があります。データを .csv ファイルにパイプすることもできます(例:Excel に取り込む、またはテキストエディターで開く)。そのために |export-csv <Path> –NoTypeInformation
enterprise.com ドメインの「IT」組織単位に対して、アカウントの有効期限(失効日)リストをエクスポートする必要があると仮定すると、DC 上で実行する式は次のとおりです:
Get-ADUser -Filter 'enabled -eq $true' -Searchbase "OU=IT,DC=enterprise,DC=com" -Properties AccountExpirationDate | Select SAMAccountName, distinguishedName, AccountExpirationDate |export-csv C:TempExpiryDate.csv -NoTypeInformation
まとめると、最小限の Microsoft Powershell のスクリプト作成スキルで Search-ADAccount と Get-ADUser を組み合わせることで、多くのアドホックな AD のクリーンアップ/分析タスクを解決できます。
Active Directory 用の PowerShell スクリプトをもっと探していますか?探している人気の Active Directory 向け PowerShell コマンド を、1 つのブログ記事にまとめて紹介しています。
共有する
もっと詳しく
著者について
Nirmal Sharma
Nirmal は MCSEx3、MCITP で、ディレクトリ サービスおよび Windows ネットワーキング分野で Microsoft MVP 賞を受賞しています。PowerShell スクリプト作成、Microsoft Azure、Office 365、ディレクトリ サービス、フェイルオーバー クラスタ、Hyper-V、System Center 製品を専門としています。