我正在尝试使用 PowerShell 更新目录用户的电子邮件地址。
我无法使用以下代码修改用户条目的邮件属性:
$BadUser = [adsi] $Account.Path
$BadUser.mail.Clear()
$BadUser.mail.Add($User.Email) | Out-Null
$BadUser.SetInfo()
使用 PowerGUI 进行调试时,mail.Clear() 和 mail.Add() 似乎都修改了 $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 发现的用户