PowerShellを使用してディレクトリユーザーの電子メールアドレスを更新しようとしています。
次のコードでユーザーエントリのメールプロパティを変更できません。
$BadUser = [adsi] $Account.Path
$BadUser.mail.Clear()
$BadUser.mail.Add($User.Email) | Out-Null
$BadUser.SetInfo()
mail.Clear()もmail.Add()も、PowerGUIを使用してデバッグするときに$BadUserを変更しているようです。
QADプラグインに依存する作業バージョンがありますが、可能であれば使用を避けたいと思います。
$suf = $AD.Parent.Substring(10)
Connect-QADService -Service "$($AD.dc[0]).$suf" -ErrorVariable AD_Conn_Error -ErrorAction Stop -WarningAction Stop | Out-Null
Set-QADObject $Account.Properties.distinguishedname[0] -ObjectAttributes @{mail=$User.Email} | Out-Null
Disconnect-QADService
QADを避けている理由:
- 8つのドメインサーバーでユーザーを検索しています
- ADSIを使用すると、接続されている複数のエントリをリストに保存できます
- QADは一度に1つのドメインに接続できます
- ADSIは比較的速いようです
- QADには、大規模なバッチでクラッシュするメモリリーク(1kB / s不良)があります
QADは、ADSIがcnによって検出した一部のユーザーを「識別」できません。