アカウント登録を手作業でやるのが面倒なので、いろいろ参考にしつつ作りました。
UserAcountInfomation.csv
SurName,GivenName,DisplayName,UserName,Domain,Profile,OU,Group1,Group2,Group3,Group4,Group5
スクリプト確認ユーザ,01,スクリプト確認ユーザ01,ScriptUser01,JahsDev2.local,,TestOU,DNSAdmins,Protected Users,TestGroup1,TestGroup2,TestGroup3
スクリプト確認ユーザ,02,スクリプト確認ユーザ02,ScriptUser02,JahsDev2.local,,TestOU,DNSAdmins,Protected Users,TestGroup1,TestGroup2,TestGroup3
スクリプト確認ユーザ,03,スクリプト確認ユーザ03,ScriptUser03,JahsDev2.local,,TestOU,DNSAdmins,Protected Users,TestGroup1,TestGroup2,TestGroup3
test
Import-Module ActiveDirectory
$CSV_FilePath = ".\UserAcountInfomation.csv"
Test-Path $CSV_FilePath
switch ($?){
True{
#真判定処理
$Password = "Password!2#"
Import-Csv $CSV_FilePath | %{
$AddADUsers = @{
Name = $_.UserName #ユーザアカウント名
Surname = $_.SurName #姓
GivenName = $_.GivenName #名
DisplayName = $_.DisplayName #表示名
# msDS-PhoneticLastName = $_.FirstName #姓(カナ)
# msDS-PhoneticFirstName = $_.LustName #名(カナ)
# msDS-PhoneticDisplayName = ($_.FirstName + ' ' + $_.LustName) #フルネーム(カナ)
UserPrincipalName = $_.UserName + '@' + $_.Domain #ユーザプリシンパル名
AccountPassword = (ConvertTo-SecureString -AsPlainText $Password -Force) #パスワード
ChangePasswordAtLogon = $True #次回ログオン時にパスワード変更する
Enabled = $True #ユーザ有効化
}
New-ADUser @AddADUsers # アカウント追加
}
Import-Csv $CSV_FilePath | ForEach-Object{
Add-ADGroupMember -Identity $_.Group1 -Members $_.UserName
Add-ADGroupMember -Identity $_.Group2 -Members $_.UserName
Add-ADGroupMember -Identity $_.Group3 -Members $_.UserName
Add-ADGroupMember -Identity $_.Group4 -Members $_.UserName
Add-ADGroupMember -Identity $_.Group5 -Members $_.UserName
}
}
False{
#偽判定処理
Write-Host(" Error:CSVファイルが存在しません。 ")
pause
}
Default{
#判定外処理
Write-Host(" 例外処理 ")
pause
}
}
※CSV上にOUの項目がありますが、一括で移動したいなーという理由で作ったは良いものの
ドメインの情報を「 . 」毎に分割したり、OUは変数的に入れたりなど考えたら面倒になって
実装してないです。
※最初からグループは5つまで設定可能です。
※カナはあってもなくてもいいのでコメントアウトにしてます。
【参考資料】
https://syachiku.net/ad-powershell-add-csv/
https://qiita.com/mindwood/items/6c4324604bec234f050c