LoginSignup
6
15

More than 5 years have passed since last update.

これで便利に!ADユーザ情報を一括で編集するPowerShellスクリプト

Posted at

すでに登録されているADユーザに対して詳細な情報を一括で編集します。

編集用CSVファイルを準備する

CSVファイルの中身は下記の項目があればOKです。並び順は関係ありません。
sAMAccountNameでユーザを割り当てますので存在するアカウントを記載してください。

user.csv
sAMAccountName  sn  givenName   company msDS-PhoneticLastName   msDS-PhoneticFirstName  msDS-PhoneticDisplayName    mail    MobilePhone name    cn  displayName

AD情報を変更するPowerShellを準備する

importFilePathに読み込ませるCSVファイルを指定してください。

adUserEdit.ps1
#importFilePathの中にCSVファイルデータを格納する
$importFilePath = "C:\ADUser\user.csv"

#上記で作成したimportFilePathから一件ずつループを回していく
import-csv $importFilePath | Foreach-Object {

    #useridという変数に、sAMAccountNameを格納する
    $userid=$_.sAMAccountName

echo $userid
echo $_.mail

    #更新用のデータを作成    
    $setuser_args = @{

        #更新用のキー
        Identity=$userid

    #漢字姓
    Surname=$_.sn

    #漢字名
    GivenName=$_.givenName

    #表示名
    DisplayName=$_.displayName

        #電子メールアドレス
        EmailAddress=$_.mail

    #携帯番号
    MobilePhone=$_.mobilePhone

    #会社名
    Company=$_.company


    };

    #Set-ADUserに渡す
    $keys = @($setuser_args.Keys |where {[string]::IsNullOrEmpty($setuser_args[$_])})
    $keys |foreach {$setuser_args.Remove($_)}
    Set-ADUser @setuser_args;

    #フリガナ
    $PhoneticDisplayName = $_."msDS-PhoneticLastName" + " " + $_."msDS-PhoneticFirstName"

    Set-ADUser $userid -add @{'msDS-PhoneticLastName'=$_."msDS-PhoneticLastName";'msDS-PhoneticFirstName'=$_."msDS-PhoneticFirstName";'msDS-PhoneticDisplayName'= $PhoneticDisplayName}

}

PowerShellを起動し、下記コマンドを実行します。
ActiveDirectoryに情報を書き込める権限を持ったユーザで実行する必要があります。
例)Domain Adminsに所属するadministratorアカウント等

Import-Module ActiveDirectory
adUserEdit.ps

エラー処理を入れていないので、エラーの場合にはコンソールにエラーが表示されるだけなので、
そちらの表示を見てエラー対応をしてください。

それではよいWindows Serverライフを!

6
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
15