個人的な意見なので聞き流してほしい。
Microsoft 365やActive Directoryなどを値をPowerShellで編集する際の心がけなんだけど,
「チェックを確実に行えるようにする」ってのがある。
作業前と作業後に「Get-ADUser <Username>」を実行して比較すればいいじゃん
って人は周りに多いけど,チェックミスしない自信があるの?10件,100件でも大丈夫?って思うし,なんでプログラミングしているのにチェックが手動なんだろう?って思う。
変更するプロパティ情報を比較して「True/False」でチェックしたほうがよくないですか?
全角半角,大文字小文字,スペース,lとIのチェックは文字列比較すれば一発ですよ。
$resluts = @()
$obj = @()
$users_csv = import-csv -Path 'filename'
foreach ($user in $users_csv) {
$ADUser = Get-ADUser -Identity $user.SAN
$obj = New-Object PSObject -Property @{
name = $user.Name
DisplayName = $user.DisplayName
ADName = $ADUser.Name
ADDisplayName = $ADUser.ADDisplayName
check_DName = $user.DisplayName -eq $ADUser.DisplayName
}
$resluts += $obj
}
$resluts | import-csv -Path 'filename'
信頼できるCSVファイルをどうやって作成するか?という問題はあるけど,チェック作業の信頼性を高めるために↑のようなのを基本作るようにしています。
DisplayNameを変更したいなら,CSVと実際の値を比較した結果を得られるようにすればよい。って感じです。
変更前にやれば現状チェックになるし,作業中なら進捗確認にもなるし,作業後は完了チェックも出来る。Excelで読み込んでcheck_DName列をソートしてFalseがないことを確認する。それだけで確実に作業が終わりました!!って言える。
作業前と作業後に「Get-ADUser <Username>」を実行したのでチェックしてください!!って言われることあるけど,ほんとめんどくさいのでやめてほしい。
0 件のコメント:
コメントを投稿