Поделиться через


Создание фильтра запросов

Фильтр запросов предписывает службам домен Active Directory находить данные в синтаксисе запроса LDAP. Все указанные технологии доступа к данным, перечисленные в разделе выбора технологии поиска, поддерживают синтаксис запросов LDAP.

Синтаксис запроса LDAP выглядит следующим образом:

<expression><expression>...

Фильтр может содержать одно или несколько выражений. Выражение имеет следующую форму:

(<logicaloperator><comparison><comparison...>)

где "<логический оператор>" является одним из следующих.

Operator Description
"|"
Логическое ИЛИ
"&"
Логический И
"!"
Логический НЕ

<и "сравнение>" — это следующее:

(<attribute><operator><value>)

где атрибут<> — это lDAPDisplayName атрибута для вычисления,<> значение — это значение для сравнения, а< оператор> — один из следующих операторов сравнения.

Operator Description
"="
Равно
"~="
Приблизительно равно
"<="
Меньше или равно
">="
Больше или равно

Кроме того, в зависимости от синтаксиса атрибута значение<> может содержать дикий символ карта ("*"). <>Значение, содержащее только дикий карта будет проверка для существования любого значения в атрибуте<>. Если для атрибута<> не задано значение, тест завершится ошибкой.

Если любой из следующих специальных символов должен отображаться в фильтре запросов как литералы, они должны быть заменены указанной escape-последовательностью.

Символ ASCII Замена escape-последовательности
*
"\2a"
(
"\28"
)
"\29"
\
"\5c"
NUL
"\00"

Кроме того, произвольные двоичные данные могут быть представлены с помощью синтаксиса escape-последовательности путем кодирования каждого байта двоичных данных с обратной косой чертой и двумя шестнадцатеричными цифрами. Например, четырехбайтовое значение 0x00000004 закодировано как "\00\00\00\04" в строке фильтра.

Примеры

Следующая строка запроса будет искать все объекты типа "компьютер".

(objectCategory=computer)

Следующая строка запроса будет искать все объекты типа "компьютер" с именем, начинающимся с "desktop".

(&(objectCategory=computer)(name=desktop*))

Следующая строка запроса будет искать все объекты типа "компьютер" с именем, начинающимся с "desktop" или именем, начинающимся с "записной книжки".

(&(objectCategory=computer)(|(name=desktop*)(name=notebook*)))

Следующая строка запроса будет искать все объекты типа "пользователь", у которых есть номер домашнего телефона.

(&(objectCategory=user)(homePhone=*))

Дополнительные сведения о строках фильтра запросов и примерах использования см. в следующих статьях: