从搜索中排除OU

时间:2012-06-11 15:02:41

标签: c# .net active-directory

  

可能重复:
  Search when NOT in OU

我正在尝试从搜索中排除OU(组织单位)

我正在使用活动目录,这样我就不会向已经终止或不再受雇于我们的人显示。

这些人存在于名为“暂停”的OU中,我不想透露。我尝试按照(!OU=Suspended)的方式做一些事情。但这不起作用。我正在使用.net和System.DirectoryServices。这是我当前的搜索过滤器:

search.Filter = String.Format ( "(&(objectCategory=person)(objectClass=user)(sn={0}*)(!employeeType=Student)(!(memberOf=CN=NoDirectoryEntry,OU=Groups,OU=Staff,OU=SPFLDCOL,DC=scad,DC=spfldcol,DC=edu)))", lname );

1 个答案:

答案 0 :(得分:1)

您无法在Active-Direcory的LDAP搜索中使用过滤器排除OU。

因为标准LDAP将LDAP-SEARCH描述为具有4个参数的函数类型:

  1. 开始搜索的点头,即区别名称(DN)
  2. 你想要成为回头的人
  3. 搜索的深度(基础,一级,子树)
  4. 过滤器。
  5. 剩下的解决方案是:

    • 寻找彼此的OU。
    • 为已暂停的OU使用每个对象的专用属性,并使用此属性进行过滤。