使用过滤器框可以构建查询。下表列出了最常用的 LDAP 查询运算符。
& 逻辑与 | 逻辑或 ! 逻辑非 = 等于 ~= 约等于 >= 等于或大于 <= 小于或等于
例如,如果您要搜索名为 John 并且姓为 Smith 或 Jones 的所有用户,则过滤器类似于下面这种形式:
(&(objectClass=user)(givenName=John)(|(sn=Smith)(sn=Jones)))
符号 !(“逻辑非”运算符)可以应用于单个条件,如以下示例所示:
(&(objectClass=user)(sn=Jones)(!givenName=John)(!givenName=Jane)(!logonCount<=100))
上述过滤器可查找姓为 Jones,名既不是 John 也不是 Mary 并且登录次数不少于 101 次的用户。
查询还支持星号通配符。以下搜索将返回姓以字母 J 开头的所有用户:
(&(objectClass=user)(sn=j*))
LDP 实用工具搜索操作不区分大小写,您可以在开头和结尾使用星号(*字符串*)来查找值中间的子字符串。完成此类搜索所需的时间要长很多。如果可能,请在开头或结尾使用通配符,但不要同时使用。
您可以使用通配符自身来测试是否存在给定的属性。如果您要查找所有不具有 Exchange Server 邮箱的用户,您可以使用以下查询来进行查找,因为这些用户缺少 msExchHomeServerName 值:
(&(objectClass=user)(!msExchHomeServerName=*))
查询中的转义字符是反斜杠 (\)。它与 * ( ) 和 NUL 都是保留字符。要搜索作为属性值的一部分的保留字符,必须在这些保留字符前面放置转义字符以及下列与各个保留字符相对应的数字代码之一:
* 2a ( 28 ) 29 \ 5c NUL 00
例如,如果您要搜索显示名称以右括号字符结尾的所有用户,可使用以下搜索:
(&(objectClass=user)(displayName=*\29))
如果您要查找主目录为 G:\Accounting 的用户,可使用以下搜索:
(&(objectClass=user)(home-directory=G:\5cACCOUNTING*))
在 LDAP 查询中,反斜杠始终表示转义字符,而永远不会是实际的反斜杠。