基本 LDAP 语法

来源:互联网 发布:淘宝客佣金是什么 编辑:程序博客网 时间:2024/04/30 05:58

基本 LDAP 语法

=(等于)

此 LDAP 参数表明某个属性等于某个值的条件得到满足。例如,如果希望查找“名“属性为“John”的所有对象,可以使用:

(givenName=John)

这会返回“名”属性为“John”的所有对象。圆括号是必需的,以便强调 LDAP 语句的开始和结束。

&(逻辑与)

如果具有多个条件并且希望全部条件都得到满足,则可使用此语法。例如,如果希望查找居住在 Dallas 并且“名”为“John”的所有人员,可以使用:

(&(givenName=John)(l=Dallas))

请注意,每个参数都被属于其自己的圆括号括起来。整个 LDAP 语句必须包括在一对主圆括号中。操作符 & 表明,只有每个参数都为真,才会将此筛选条件应用到要查询的对象。

!(逻辑非)

此操作符用来排除具有特定属性的对象。假定您需要查找“名”为“John”的对象以外的所有对象。则应使用如下语句:

(!givenName=John)

此语句将查找“名”不为“John”的所有对象。请注意:! 操作符紧邻参数的前面,并且位于参数的圆括号内。由于本语句只有一个参数,因此使用圆括号将其括起以示说明。

*(通配符)

可使用通配符表示值可以等于任何值。使用它的情况可能是:您希望查找具有职务头衔的所有对象。为此,可以使用:

(title=*)

这会返回“title”属性包含内容的所有对象。另一个例子是:您知道某个对象的“名”属性的开头两个字母是“Jo”。那么,可以使用如下语法进行查找:

(givenName=Jo*)

这会返回“名”以“Jo”开头的所有对象。

以下是 LDAP 语法的高级使用示例:

您需要一个筛选条件,用来查找居住在 Dallas 或 Austin,并且名为“John”的所有对象。使用的语法应当是:

(&(givenName=John)(|(l=Dallas)(l=Austin)))

您发现应用程序日志中有 9,548 个事件,因此需要查找导致这些日志事件的所有对象。在此情况下,您需要查找所有被禁用的用户 (msExchUserAccountControl=2),这些用户的 msExchMasterAccountSID 没有值。使用的语法应当是:

(&(msExchUserAccountControl=2)(!msExchMasterAccountSID=*))

  注意:

! 操作符与通配符的结合使用可查找属性未设置为任何值的对象。

何时使用 LDAP 查询?

在使用 Exchange Server 时,您遇到了使用 LDAP 字符串的情况。例如,当您设置收件人或邮箱管理策略或地址列表过滤器时,或者,当您搜索 Active Directory 目录服务时,Exchange Server 都会使用 LDAP。在下面的部分中,我们将介绍一些 LDAP 语句的使用方式。

使用“Active Directory 用户和计算机”进行搜索

下例描述了如何“Active Directory 用户和计算机”执行搜索:

1.

打开“Active Directory用户和计算机”。

2.

右击域对象并选择查找

3.

单击查找旁边的下拉列表,然后选择自定义搜索

4.

从下一屏幕中,选择高级选项卡。

5.

输入 LDAP 查询下,输入相应的 LDAP 语句。

本示例尝试查找职务为 prez 或姓名以 test 开头的所有对象。如果您单击立即查找,应该能够看到相应的输出,如以下屏幕截图所示。