【PowerShell】Active Directoryユーザーを一括で作成・更新・無効化する方法

【PowerShell】Active Directoryユーザーを一括で作成・更新・無効化する方法 PowerShell

Active Directory(AD)を管理するうえで、複数のユーザーをまとめて作成・更新・無効化する作業は頻繁に発生します。GUIで1件ずつ操作するのは非効率ですが、PowerShellを使えばCSVファイルなどを元に一括処理が可能です。本記事では、実務で使えるPowerShellスクリプトとその手順を紹介します。

事前準備:Active Directoryモジュールの確認

まずはPowerShellでActive Directoryコマンドレットが使用可能か確認します。以下のようにモジュールがインストールされているかチェックしましょう。

Import-Module ActiveDirectory

モジュールが存在しない場合は、Windowsの「RSAT: Active Directory ツール」をインストールしてください。

CSVファイルでユーザー情報を管理

一括処理の対象となるユーザー情報はCSVファイルで管理するのが一般的です。以下はCSVのサンプル構成です。

"Name","SamAccountName","UserPrincipalName","OU","Action"
"田中 太郎","tanaka","tanaka@example.local","OU=Sales,DC=example,DC=local","create"
"佐藤 花子","sato","sato@example.local","OU=HR,DC=example,DC=local","disable"

Action列で「create」「update」「disable」などの処理を区別します。

ユーザーを一括作成するスクリプト

以下はCSVに基づいて新規ユーザーを作成するスクリプトの例です。

$users = Import-Csv "users.csv"

foreach ($user in $users) {
    if ($user.Action -eq "create") {
        New-ADUser -Name $user.Name `
                   -SamAccountName $user.SamAccountName `
                   -UserPrincipalName $user.UserPrincipalName `
                   -Path $user.OU `
                   -AccountPassword (ConvertTo-SecureString "P@ssw0rd!" -AsPlainText -Force) `
                   -Enabled $true
    }
}

パスワードは仮の値を設定していますが、本番環境では個別に生成・管理するようにしてください。

ユーザー情報を一括で更新するスクリプト

次に、既存ユーザーの情報を一括で変更したい場合の例を紹介します。

$users = Import-Csv "users.csv"

foreach ($user in $users) {
    if ($user.Action -eq "update") {
        Set-ADUser -Identity $user.SamAccountName `
                   -UserPrincipalName $user.UserPrincipalName `
                   -DisplayName $user.Name
    }
}

更新対象の属性は用途に応じて変更してください。

ユーザーを一括で無効化するスクリプト

退職者や異動により一時的にアカウントを無効化するケースにも対応可能です。

$users = Import-Csv "users.csv"

foreach ($user in $users) {
    if ($user.Action -eq "disable") {
        Disable-ADAccount -Identity $user.SamAccountName
    }
}

無効化されたアカウントは再度 Enable-ADAccount で復元可能です。

まとめ

PowerShellを使えば、Active Directoryのユーザー管理を柔軟かつ高速に行うことができます。CSVによる一括処理を活用すれば、数百人規模の新入社員対応や一斉異動時の管理もスムーズにこなせます。日常的な運用業務の自動化にも非常に有効ですので、ぜひ活用してみてください。