user expo rt.p s1
ADの LDAP に登録さ れている 項目を見 やすいよ うにタイ トルつけ てリスト 出力
出力先 sam plae 5.cs v
なかの コメント を参考に 出力対象 を絞り込 み可能
ADの
出力先
なかの
user expo rt.p s1の記載内容
# -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
user
use
use
で文字
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",,,""
この記事へのコメント