PowerShellを使用してAD(Active Directory)で非アクティブなコンピュータアカウントを特定する方法

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内の非アクティブなコンピュータアカウントを特定、削除する方法を解説しました。これにより、セキュリティを向上させるとともに、不要なリソースを削減することが可能です。

コメント

コメントする

目次