Active Directory用户和计算机的LDAP过滤字符串" find"对话

时间:2017-06-01 17:13:59

标签: c# active-directory ldap

在Active Directory用户和计算机(ADUC)中,用户可以右键单击OU并选择"查找"从OU中的所有对象进行搜索。在第一个标签上,向用户显示"名称"和"描述"用于简单查询的字段。但是,“名称”字段似乎搜索AD中的多个字段,例如canonicalName,sAMAccountName和distinguishedName。我无法在MSDN上找到任何文档,其中概述了以这种方式搜索ADUC时使用的完整字段列表。

我现在正在编写一个C#应用程序,其中一个要求是在AD中搜索对象。由于它解析用户输入,并且不同的用户喜欢不同的标识符,因此对象的名称可以是使用ADUC的查找对话返回对象的任何内容。我正在使用System.DirectoryServices.DirectorySearcher来实现这一点,但我似乎无法复制ADUC的确切搜索行为。

ADUC的名称字段究竟是哪些字段"查找"对话查询,以及什么是等效的LDAP过滤字符串?

1 个答案:

答案 0 :(得分:0)

按照Esteban的建议,我运行了Sysinternal提供的AdInsight utility并取出了这个过滤字符串:

(及(及(|(及(objectCategory =人)(的objectSID = )(samAccountType:1.2.840.113556.1.4.804:= 3))(及(objectCategory =人) (!=的objectSID ))(及(objectCategory =基团)(groupType:1.2.840.113556.1.4.804:= 14)))(ANR = MyObjectID *)))

但是,如果您不关心类型并且愿意看到所有对象,那么这似乎仍然有效:

(及(ANR = MyObjectID *))