Active DirectoryにCSVリストのユーザーを新規作成する。
2017/04/02
新卒の入社時など、ある程度まとまった数のユーザーを登録する必要があるとき
一つひとつGUIから作成するのは面倒。
Powershellを使えば、ある程度属性を設定した上で
CSV取り込みすることが可能です。
こんな感じにCSVを用意する。
【UserAdd.CSV】
アカウント名 | 姓 | 名 | 表示名 | 初期パスワード | グループ名 | OU | |
---|---|---|---|---|---|---|---|
1 | Taro.Y | 山田 | 太郎 | Taro Yamada | Password | 人事部 | Users-人事 |
2 | Hanako.T | 田中 | 花子 | Hanako Tanaka | Password | 総務部 | Users-総務 |
3 | Hogetaro.H | ほげ | ほげ太郎 | Hoge Hogetaro | Password | 役員 | Users-役員 |
上記のファイルをc:\とかに配置します。
そうしたらあとは以下を実行するだけです。
----------------------------
#ここはおまじない。
Import-Module ActiveDirectory
#ドメインのDNを取得
$TargetDomain=(Get-ADDomain | Select-object DistinguishedName).DistinguishedName
#ここから本体
Import-CSV C:\UserAdd.csv | ForEach-Object -process {
$TargetOU="OU="+$_.OU+","+$TargetDomain
Write-Host `n
New-ADUser $_.アカウント名 `
-UserPrincipalName $_.アカウント名 `
-Enabled $true `
-Surname $_.姓 `
-GivenName $_.名 `
-DisplayName $_.表示名 `
-AccountPassword (ConvertTo-SecureString -AsPlainText $_.初期パスワード -Force) `
-ChangePasswordAtLogon $true `
-path $TargetOU `
}
----------------------------
これで、CSVで指定したOUの下に、新規でユーザーを作成できます。
OUはドメイン直下に作成していることを想定しているので、階層になっている場合は
CSVに第二階層の列とか用意してあげれば書けると思われます。
少し補足で解説すると
-Enabled $true
この行を入れると、有効な状態でユーザーが作成されます。
入れないと無効な状態で作成されてしまいます。
-ChangePasswordAtLogon $true
この行を入れると、利用者は初回ログオン時にパスワードの変更を求められます。
不要な場合はこの行は消してください。
おしまい。