このページ

Active Directory で非アクティブなユーザー アカウントを識別する方法



従業員が退職したら、会社のシステムへのアクセスを遮断すべきです。しかし、閑散期、特に専任のITチームを持たない小規模な組織では、この措置が見落とされがちです。その結果、アカウントが残存し、セキュリティリスクにつながるだけでなく、不要なライセンス費用も発生してしまいます。そのため、アクティブなアカウントをまだ使用している従業員を把握することは、単に良い習慣であるだけでなく、セキュリティを厳重に保つために不可欠です。PowerShellを使用すると、特に高度な管理ツールをお持ちでない場合は、この作業がはるかに容易になります。ここでの目標は、しばらく使用されていないアカウントを特定し、無効化または確認することです。

PowerShell で非アクティブなユーザー アカウントを見つける方法

残念ながら、従業員が退職しても、すぐに通知が届くとは限りません。特に人事部とIT部門が連携していない場合や、自動化が進んでいない場合などはなおさらです。だからこそ、ユーザーアカウントを定期的に確認することが賢明です。何らかの理由でアクティブなままになっているゴーストアカウントを見つけるのに役立ちます。PowerShellのSearch-ADAccountコマンドレットは、Active Directoryから直接情報を取得できるため、非常に役立ちます。このコマンドレットを使えば、長期間ログインしていないアカウントを特定し、適切な対応をすることができます。

最近ログインしていないユーザーを見つける

このコマンドは、まだ有効になっているものの、しばらく使用されていないアカウントを特定するのに役立ちます。これが機能する理由は、古くなっている可能性があるものの、まだ無効化されていないアカウントのスナップショットを取得できるためです。また、このコマンドは結果を最終ログイン日で並べ替えるため、最も古いアカウントが上部に表示されるため、確認が容易になります。

Search-ADAccount -AccountInactive -UsersOnly -TimeSpan 100.00:00:00 | Where {$_. Enabled -eq "True"} | sort -property LastLogonDate -desc | ft Name, LastLogonDate, Enabled -autosize

この場合、-TimeSpan パラメータは、100日以上ログインしていないユーザーのみを検索対象とします(日数は調整可能です)。形式は「日.時間:分:秒」です。正直なところ、少し奇妙に感じますが、慣れてしまえば安定して動作するようです。設定によっては、少し調整したり、コマンドを実行しているマシンを再起動したりする必要があるかもしれません。

実用的には、このリストにはしばらく使用されていないアカウントが表示されるので、それらのアカウントを無効化または削除することを検討できます。さらに、同じコマンドを微調整してコンピューターアカウントも特定できます。-UsersOnly を -ComputerOrCreate に変更するだけで、古いデバイスアカウントをクリーンアップするカスタムスクリプトを作成できます。さらに高度な設定をしたい場合は、これをスケジュールタスクとして設定し、毎週または毎月レポートをメールで受け取るようにすれば、どのアカウントの確認が遅れているかを常に把握できます。

一つ注意点があります。ADの設定によっては、これらのコマンドを実行するために管理者権限や特定のモジュールのインストールが必要になる場合があります。また、期待通りの結果が表示されない場合は、PowerShellにActive Directoryモジュールがロードされているかどうかを確認してくださいImport-Module ActiveDirectory。これは で確認できます。

ああ、Windowsは必要以上に複雑な処理をするため、誤検知が発生したり、一部のアカウントが見逃されたりすることがあります。ただし、常に完璧とは限らないので、スクリプト実行後に手動で確認することをお勧めします。



この記事は役に立ちましたか?