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 |
コメント