クエリフィルタの作成

クエリーフィルターは、Active DirectoryドメインサービスにLDAPクエリー構文でデータを検索するように指示する。 に列挙されているすべての指定されたデータアクセス技術。 検索技術の選択 トピックはLDAPクエリ構文をサポートしています。

LDAPクエリの構文は以下の通り:

<expression><expression>...

フィルターには、1つまたは複数の式を含めることができる。 式は次のような形をしている:

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

どこ "<論理演算子>" は以下のいずれかである。

Operator 説明
"|"
論理的 または
"&"
論理的 アンド
"!"
論理的 違う

そして "<比較>"は以下の通りである:

(<attribute><operator><value>)

どこ "<属性>" は lDAPDisplayName 評価する属性の "<価値>" iは比較する値で "<オペレーター>"

Operator 説明
"="
[等しい]
"~="
ほぼ等しい
"<="
指定の値以下
">="
指定の値以上

さらに、属性の構文によっては "<価値>" はワイルドカード記号("*")を含むことができる。 A "<価値>" の中にどんな値でも存在するかどうかをチェックします。 "<属性>". に値が設定されていない場合 "<属性>", テストは失敗する。

以下の特殊文字のいずれかがリテラルとしてクエリ・フィルタに現れなければならない場合は、列挙したエスケープ・シーケンスで置き換えなければならない。

ASCII 文字 エスケープシーケンスの代用
*
"\2a"
(
"\28"
)
"\29"
\
"\5c"
NUL
"\00"

さらに、バイナリデータの各バイトをバックスラッシュの後に2桁の16進数でエンコードすることで、任意のバイナリデータをエスケープシーケンス構文を使って表現することができる。 たとえば、4 バイト値 0x00000004 は、フィルター文字列では「\00\00\00\04」としてエンコードされます。

次のクエリー文字列は、"computer "タイプのすべてのオブジェクトを検索します。

(objectCategory=computer)

次のクエリー文字列は、"computer "タイプで、"desktop "で始まる名前のオブジェクトをすべて検索する。

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

次のクエリー文字列は、"computer "タイプで、"desktop "で始まる名前、または "notebook "で始まる名前を持つオブジェクトをすべて検索する。

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

次のクエリー文字列は、自宅の電話番号を持つ「user」タイプのオブジェクトをすべて検索します。

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

クエリーフィルター文字列の詳細と使用例については、以下を参照のこと: