すでに登録されている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ライフを!