存储在 Active Directory 中的联系人的“经理”字段包含经理 AD 对象的 CanonicalName,而不是用户名或 DistinguishedName。我需要能够使用 PowerShell 在 AD 中搜索邮件联系人的经理,但 Get-ADUser 不允许按 CanonicalName 进行过滤,因为它是构造的属性,而不是对象的实际属性。
如何使用 Powershell 通过规范名称搜索 AD?
此命令有效,但对于脚本目的而言耗时太长,因为过滤器位于管道的错误一侧:
获取 ADUser -Filter * -ResultSetSize 10000 -属性 CanonicalName | ?{$_.CanonicalName -eq $MailContact.Manager}
答案1
很多时候,我只是在放弃并在论坛上发布问题后才发现问题。
答案是使用 Get-ADObject 而不是 Get-Contact 来获取邮件联系人。
获取-ADUser(获取-ADObject -Filter {Mail -eq $ContactAddress} -Properties Manager).管理器
无论出于什么原因,Get-ADObject 将管理器属性作为 DistinguishedName 返回,而 Get-Contact 将其作为 CanonicalName 返回。