在OU中不搜索时搜索

时间:2011-06-01 21:59:29

标签: active-directory ldap

我想在AD中使用LDAP进行搜索,条件是人们不在特定的OU中(参见示例)

Domain.local
- [OU] Location A
-- [OU] Users
-- [OU] Computers
- [OU] Location B
-- [OU] Users
-- [OU] Computers
- [OU] Location C
-- [OU] Users
-- [OU] Computers

在我的过滤器中,我希望所有用户都是来自位置B /用户的用户

这可能吗?如果是的话,怎么样?

1 个答案:

答案 0 :(得分:4)

ExtensibleMatch 解释here允许在DN路径上构建过滤器,但在Active Directory中不支持。据我所知,你有以下解决方案可以做你想做的事情:

  • 多次搜索,每个OU一个,除了您不想要的
  • 两个搜索,一个全局,一个用于您不想要对象的OU,并且您在第一个搜索中禁止第二个搜索中的条目。
  • 使用AD中的属性对位置B中的用户进行区分。例如,名为OU的属性继承自organizationalPerson类。你用“locationB”设置它(它是多元化的)

第三种解决方案是我使用的解决方案。我的建议是:

  1. 测试您的目录中是否为用户或inetorgpersons使用了OU属性,如果是,请选择其他属性

    (及(|(对象类=为inetOrgPerson)(对象类=用户))(OU = *))

  2. 通过编写脚本,通过编程,使用LDIF填充您选择的属性并保持使用

  3. 如果你是带有C#的programmin,你在simalary question中解释了对象的“父”信息,这样你就可以对这个标准对象进行排序。