Powershellによるユーザー一括変更

userexport.ps1
 ADのLDAPに登録されている項目を見やすいようにタイトルつけてリスト出力
 出力先 samplae5.csv
 なかのコメントを参考に出力対象を絞り込み可能

userexport.ps1の記載内容
# -SearchBase "OU=日本語OU,DC=foge,DC=local" は検索対象のベースを指定するので、実際の内容に合わせる# Get-ADUser -filter * -Properties * なら条件なしで全てが出力対象# Get-ADUser -LDAPFilter "(name=s24*)" -Properties * ならnameにs24がつくものが対象になる。# -Properties * がないと最小の項目しか出力されない# 出力先は、sample5.csv が最終行に指定されている。$UserArray = New-Object System.Collections.ArrayList#Get-ADUser -filter * -SearchBase "OU=日本語OU,DC=foge,DC=local" -Properties * | Foreach-Object {Get-ADUser -filter * -Properties * | Foreach-Object {	$UserObj = New-Object PSObject | Select-Object "OU","ユーザID","パスワード","名前","姓","名","説明","電子メール","移動プロファイル","ホームフォルダ・ドライブ","ホームフォルダ・パス","追加グループ"	$tmp=$_.DistinguishedName -match "CN=([^,]*),(.*)$"	$UserObj."OU"=$matches[2];	$UserObj."ユーザID"=$_.SamAccountName	$UserObj."名前"=$_.Name	$UserObj."姓"=$_.Surname	$UserObj."名"=$_.GivenName	$UserObj."説明"=$_.Description	$UserObj."電子メール"=$_.EmailAddress	$UserObj."移動プロファイル"=$_.ProfilePath	$UserObj."ホームフォルダ・ドライブ"=$_.HomeDrive	$UserObj."ホームフォルダ・パス"=$_.HomeDirectory    $members=@()	foreach($i in $_.Memberof){		$tmp=$i -match "CN=([^,]*),(.*)$"        #Write-Host $matches[1]        $members += $matches[1]	}    $UserObj."追加グループ" = [string]::Join(",", $members)	[void]$UserArray.Add($UserObj);}$UserArray |export-csv -notype -Encoding Default sample5.csv



userset_from_csv.ps1
 userset.csvから読み込んで、項目毎に内容を修正セット
 userset.csvはUTF8で保存すること、terapadなどのフリーのテキストエディタ
 で文字コード指定で保存する。
userset_from_csv.ps1に記載する内容
# $ ユーザ変数に項目を一度セットする。# $user. の後に取り出したい項目のタイトルを指定する。タイトルは1行目に記載しておく# $user.ユーザID は修正対象の特定に必要なので必須# 後の項目は、修正したい項目名の先頭に -をつれてセットする内容を指定する。# 以下の例では、移動プロファイルのみ修正しているが複数項目を列挙すれば複数の項目を# 変更可能## 注意 設定されいる内容をなくす場合は、""ではなくて -Clear 項目名と指定する。# 例 -Cleare ProfilePath で移動プロファイルの指定のクリア(消去)が可能#$csv=Import-Csv userset.csvForeach ($user in $csv) { Set-ADUser -Identity $user.ユーザID -ProfilePath $user.移動プロファイル }

userset.csvサンプル
"OU","ユーザID","パスワード","名前","姓","名","説明","電子メール","移動プロファイル","ホームフォルダ・ドライブ","ホームフォルダ・パス","追加グループ""OU=making,DC=making,DC=co,DC=jp","user",,"user","user",,,,"\\maksv12\profiles\user",,,""


この記事へのコメント