ADUserとかを編集するPowerShellを作るときの心がけ

個人的な意見なので聞き流してほしい。

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

コメントを投稿

Microsoft Entra Connect Cloud同期のお勧め属性マッピング

ハイブリッドID構成の設定で必須設定じゃないかな~というやつを備忘録的に投稿しておきます。個人的な推奨値なので実際に設定する際は十分な理解と検証を心掛けてください。そのまま利用して不具合が発生しても責任はとれません。 Microsoft Entra Connect によって同期さ...