Active Directory(AD)は多くの企業で使用されるディレクトリサービスですが、時には非アクティブなコンピュータアカウントが蓄積してしまうことがあります。このようなアカウントはセキュリティリスクをもたらすため、定期的に整理することが重要です。この記事では、PowerShellを使用して非アクティブなコンピュータアカウントを効率的に特定する方法を詳しく解説します。
目次
前提条件と準備
PowerShellを使用する前に、以下の前提条件と準備が必要です。
- Windows ServerにActive Directoryがインストールされている
- PowerShellがインストールされている
- PowerShellでActive Directoryモジュールが使用可能である
Active Directoryモジュールのインストール
Active Directoryモジュールは以下のコマンドでインストールできます。
# PowerShellを管理者権限で開いて、以下のコマンドを実行
Install-WindowsFeature -Name 'RSAT-AD-PowerShell' -IncludeAllSubFeature
基本的なコードの構造
基本的なコードは非常にシンプルです。以下のスクリプトは、90日以上ログオンしていないコンピュータアカウントをリストします。
# Active Directory モジュールをインポート
Import-Module ActiveDirectory
# 非アクティブなコンピュータを検索
$inactiveComputers = Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -ComputersOnly
# 結果を表示
$inactiveComputers
各コードブロックの説明
Import-Module ActiveDirectory
: Active Directoryモジュールをインポートします。Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 -ComputersOnly
: このコマンドで、90日以上ログオンしていないコンピュータアカウントを検索します。
Search-ADAccountコマンドのオプション
Search-ADAccount
コマンドは多くのオプションを持っています。以下はその一例です。
-AccountInactive
: 非アクティブなアカウントを検索します。-TimeSpan
: 非アクティブと見なす期間を指定します。-ComputersOnly
: コンピュータアカウントのみを対象とします。
応用例:非アクティブなコンピュータアカウントを削除する
非アクティブなコンピュータアカウントを特定した後、次はそれを削除する方法です。
# 非アクティブなコンピュータアカウントを削除
foreach ($computer in $inactiveComputers) {
# アカウントを削除
Remove-ADComputer $computer -Confirm:$false
}
コードブロックの説明
foreach ($computer in $inactiveComputers)
: 非アクティブな各コンピュータアカウントに対してループ処理を行います。Remove-ADComputer $computer -Confirm:$false
: 非アクティブなコンピュータアカウントを削除します。確認ダイアログは出現しないようにしています。
まとめ
PowerShellを使用してActive Directory内の非アクティブなコンピュータアカウントを特定、削除する方法を解説しました。これにより、セキュリティを向上させるとともに、不要なリソースを削減することが可能です。
コメント