ADアカウントを大量に作成する機会があった。手作業は面倒なのでPowershellスクリプト化した。なお、本業はプログラマではないので構文とかは素人。
登録するユーザのcsvファイルを作成する。
まず、作成するユーザ一覧のcsvを下記の項目で作成し、任意のフォルダに account.csv とファイル名で作成する。
ID | 氏名 | passwd |
aabbcc | 山田 太郎 | 12345678 |
ddeeff | 山田 花子 | 9876543 |
Powershell スクリプトの作成
下記のパワーシェルスクリプトを作成して .ps1 ファイルとして保存し、account.csv と一緒のフォルダに置く。※ スクリプト内の $Dom 変数や $OUPath 変数はご利用環境に合わせて編集してください。
# 作業フォルダの定義
$scriptname = $MyInvocation.MyCommand.Name
$path = $PSScriptRoot
# 作業フォルダに移動
cd $path
#ログ取得
if (!(Test-Path .\log)){
mkdir .\log
Write-Output ("logフォルダを作成しました。")
}
$logfile = ".\log\" + $scriptname +"_"+ (Get-date -Format "yyyy-MMdd-HHmmss") + ".log"
Start-Transcript $logfile -Append
$Lists = Import-Csv -Encoding Default ".\account.csv"
#UPNのドメイン部分の定義
$Dom = "@ad.tec-momo.com"
#ユーザを格納するOUの定義
$OUPath = "OU=OU名,DC=ad,DC=tec-memo,DC=com"
$count = 0
foreach($l in $Lists){
$count ++
New-ADUser -Path $OUPath `
-Name $l.ID `
-DisplayName $l.氏名 `
-UserPrincipalName ($l.ID + $Dom) `
-AccountPassword (ConvertTo-SecureString -AsPlainText $l.Passwd -Force) `
-Enable $true
Write-Output("[" + $count +"]/[" + $Lists.Count + "] " + $l.ID + " を登録しました。")
}
#ログ停止
Stop-Transcript
コメント