0

我正在从 Active Directory 中提取用户列表,但是我想跳过名为“ServiceAccounts”的特定组织单位。我的理解是以下行不会解决我的问题,因为通配符不适用于 DN :

search.Filter = "(&(objectCategory=person)(objectClass=user)(!(distinguishedName=*ServiceAccounts*))(mail=*))";

此 OU 包含大约 150 多个服务帐户的列表,我在生成员工列表时不需要这些服务帐户。我唯一的问题是,如何不从特定 OU 获取记录?

谢谢,非常感谢!

4

1 回答 1

0

通常在 LDAP 中,不允许在 DN 值内搜索子字符串。

Microsoft Active Directory 特别是通配符不能与 Distinguished Name 属性(数据类型 DN 的属性)一起使用,例如 distinctName、memberOf、directReports 和 managedBy 属性。

由于 Microsoft Active Directory 仅支持特定的可扩展匹配规则,我认为这是不可能的。

此外,默认情况下,用户条目上不会填充“ou”值,或者您可以使用:

(!(ou=ServiceAccounts))

过滤器内。

一些编程环境似乎支持以下非标准语法:

(&(objectClass=user)(!(distinguishedName:=%ServiceAccounts%)))

也许提供有关您的树结构的更多信息,有人可以提供解决方案。

于 2017-06-16T10:16:52.200 回答