ActiveDirectory にユーザをPowershell スクリプトで一括登録

スポンサーリンク

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

コメント

タイトルとURLをコピーしました