微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DirectorySearcher 查找具有特定经理的所有条目

如何解决DirectorySearcher 查找具有特定经理的所有条目

我想通过 PowerShell 查找具有特定管理器的所有 AD 条目。我需要如何设置过滤器?

假设我们有以下组织:userauserbusercuserd

所以我希望过滤器返回 usera、userb、userc 和 userd。

$ADS = New-Object System.DirectoryServices.DirectorySearcher
$ADS.Filter = "(|(cn=usera)(manager=*CN=usera*))"
$Results = $ADS.FindAll()
$Results.Count

$ADS.Filter = "(|(cn=usera)(manager=*usera*))"
$Results = $ADS.FindAll()
$Results.Count

$ADS.Filter = "(|(cn=usera)(manager=usera))"
$Results = $ADS.FindAll()
$Results.Count

结果总是空的。但是如果我将完整的专有名称属性从 usera 复制到过滤器中,它就可以工作。问题是,我通常在启动脚本时没有这个值,所以我必须先进行另一个查询,然后才能开始我想避免的实际查询(下面的示例)。

$ADS = New-Object System.DirectoryServices.DirectorySearcher
$ADS.Filter = "(cn=usera)"
$Result1 = $ADS.FindOne()
$ADS.Filter = "(|(cn=usera)(manager=$($Result1.Properties.distinguishedname)))"
$Results = $ADS.FindAll()
$Results.Count

输出:4

解决方法

为什么 manager 属性会指向 DN?真正的经理财产不是 SID 吗?可能在查询过程中发生了一些转换。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。