【问题标题】:Using DirectorySearcher to query multiple OUs使用 DirectorySearcher 查询多个 OU
【发布时间】:2023-04-24 21:13:01
【问题描述】:

我有以下代码:

var directoryEntry = new DirectoryEntry(distributionListsListADSPath);
var directorySearcher = new DirectorySearcher(directoryEntry) 
          { SizeLimit = int.MaxValue, PageSize = int.MaxValue };
var result = directorySearcher.FindAll();

问题是我想搜索两个单独的 OU。

所以我要做的就是运行两次,一次在哪里

private const string distributionListsListADSPath = 
"LDAP://OU=Distribution Lists,OU=Groups,DC=enron,DC=com";

还有一秒在哪里

private const string distributionListsListADSPath = 
"LDAP://OU=Security Groups,OU=Groups,DC=enron,DC=com";

理想情况下,我可以做类似的事情

private const string distributionListsListADSPath = 
"LDAP://OU=Distribution Lists | OU = Security Groups ,OU=Groups,DC=enron,DC=com";

【问题讨论】:

    标签: .net active-directory ldap directoryservices


    【解决方案1】:

    在不知道容器的层次结构的情况下,很难形成正确的答案。

    您可能需要使用此处描述的可扩展匹配:http://ldapwiki.willeke.com/wiki/ExtensibleMatch

    祝你好运-吉姆

    【讨论】:

      【解决方案2】:

      试试这个:

      "(|(OU=Distribution Lists)(OU=Security Groups,OU=Groups,DC=enron,DC=com))"
      

      【讨论】:

      • 这个过滤器会带来任何性能问题吗? (| (OU=0001,OU=Groups,DC=abc,DC=com)(OU=0002,OU=Groups,DC=abc,DC=com) ....(OU=0999,OU=Groups,DC=abc,DC=com))