[HOWTO] ビットワイズ フィルタを使用して Active Directory クエリを実行する方法

文書翻訳 文書翻訳
文書番号: 269181 - 対象製品
この記事は、以前は次の ID で公開されていました: JP269181
すべて展開する | すべて折りたたむ

概要

Active Directory オブジェクトの属性の一部は、 ビットワイズ フラグで構成されています。そのため、特定のビットが設定されているオブジェクトのみを返すクエリを実行するために、ビットワイズ演算子を使用する必要が生じることがあります。このクエリの作成には、LDAP (Lightweight Directory Access Protocol) Matching Rule コントロールを使用します。

詳細

LDAP Matching Rule は次の構文で指定します。
attributename:ruleOID:=value
attributename には属性の LDAPDisplayName を入力し、ruleOID には Matching Rule コントロールのオブジェクト ID (OID) を入力し、value には比較演算に使用する 10 進値を入力します。値が 16 進数の場合は、10 進数に変換した値を使用します。

ruleOID には、次のいずれかの値を指定します。
  • 1.2.840.113556.1.4.803 - これは、LDAP_MATCHING_RULE_BIT_AND ルールのオブジェクト ID です。このルールが適用されるのは、プロパティのすべてのビット値が一致する場合のみです。したがって、このルールは AND ビットワイズ演算子と似た働きをします。
  • 1.2.840.113556.1.4.804 - これは、LDAP_MATCHING_RULE_BIT_OR ルールのオブジェクト ID です。このルールは、プロパティのビットが 1 つでも一致する場合に適用されます。したがって、このルールは OR ビットワイズ演算子と似た働きをします。
無効化されているユーザー クラス オブジェクトを対象とした Active Directory クエリの例を以下に示します。この例でユーザー クラス オブジェクトの情報を保持する属性は userAccountControl です。この属性は、異なるフラグの組み合わせで構成されています。オブジェクトの無効化を設定するフラグは UF_ACCOUNTDISABLE です。値には 0x02 (10 進数の 2) を指定します。userAccountControl 属性に UF_ACCOUNTDISABLED ビットを指定したビットワイズ比較フィルタは、次のようになります。
(UserAccountControl:1.2.840.113556.1.4.803:=2)
上のビットワイズ比較フィルタを使用した Microsoft Visual Basic のサンプル スクリプトを以下に示します。
Set oNSP = GetObject("LDAP://Win2000Server/rootdse")
Set oConfig = GetObject("LDAP://Win2000Server/" & oNSP.get("DefaultNamingContext"))

Set oConn = CreateObject("ADODB.Connection")
oConn.Provider = "ADSDSOObject"
oConn.Open ""

strQuery = "<" & oConfig.ADsPath & ">;(&(objectClass=User)(userAccountControl:1.2.840.113556.1.4.803:=2));name,objectClass;subtree"

Set oRS = oConn.Execute(strQuery)
While Not oRS.EOF
  MsgBox oRS.Fields("name") 
  oRS.MoveNext
Wend

MsgBox "done"

Set oConn = Nothing
Set oRS = Nothing
Set oConfig = Nothing
Set oNSP = Nothing

関連情報

LDAP Matching Rule の詳しい使用方法については、Platform SDK (Software Development Kit) を参照してください。 この情報は Platform SDK の次の場所にあります。

Networking and Directory Services
  Active Directory, ADSI, and Directory Services
Active Directory
        Using Active Directory
           Searching the Active Directory
             Creating a Query Filter
                 How to Specify Comparison Values 
LDAP Matching Rule の詳しい使用方法については、Platform SDK に収録されているサンプルも参照してください。これらのサンプルは \Microsoft PlatformSDK\Samples\NetDs\ADSI\Samples\ActiveDir\Attributes and SDK\Samples\NetDs\ADSI\Samples\ActiveDir\GetSchemaInfo フォルダに収められています。

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 269181 (最終更新日 2001-01-19) をもとに作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

プロパティ

文書番号: 269181 - 最終更新日: 2004年3月30日 - リビジョン: 2.0
この資料は以下の製品について記述したものです。
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
  • Microsoft Active Directory Service Interfaces 2.5
キーワード:?
_ik kbadsi kbgrpdsmsg kbhowto kbmsg kboswin2000 KB269181
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com