LDAP 言語
LDAP 言語は、LDAP 検索フィルター構文を使用するクエリ ステートメントの形式です。 次の ADSI 検索インターフェイスで LDAP クエリ ステートメントを使用します。
- ActiveX データ オブジェクト (ADO) インターフェイス。これは、OLE DB を使用するオートメーション インターフェイスです。
- OLE DB。これは、データベースにクエリを実行するための C/C++ インターフェイスのセットです。
- IDirectorySearch。これは Active Directory の C/C++ インターフェイスです。
LDAP 方言文字列は、セミコロン (;) で区切られた 4 つの部分で構成されます。
ベースの識別名。 例えば:
<LDAP://DC=Fabrikam,DC=COM>
取得する属性の LDAP 表示名。 複数の属性はコンマで区切られます。
検索の範囲を指定します。 有効な値は、"base"、"onelevel"、および "subtree" です。 LDAP クエリ文字列で指定されたスコープは、ADO Command オブジェクトの "SearchScope" プロパティで指定された検索スコープをオーバーライドします。
サブツリー内のすべてのオブジェクトを検索する ADSI の LDAP 方言のコード例を次に示します。
"<LDAP://DC=Fabrikam,DC=com>;(objectClass=*);AdsPath, cn;subTree"
すべての検索オプション (検索ページ サイズなど) を LDAP 方言で表すことができるわけではないため、実際のクエリ実行を開始する前にオプションを設定する必要があります。
LDAP クエリを実行するためのコード例
次のコード例は、LDAP クエリの使用方法を示しています
Dim con As New Connection, rs As New Recordset
Dim adVariant
Dim i 'Used for counter
Dim j 'Used for counter
Dim Com As New Command
Dim strDomain As String
Dim strPassword As String
' Open a Connection object.
con.Provider = "ADsDSOObject"
con.Properties("ADSI Flag") = 1
con.Properties("User ID") = strDomain + "\" + strUserID
con.Properties("Password") = strPassword
con.Open "Active Directory Provider"
' Create a command object on this connection.
Set Com.ActiveConnection = con
' Set the query string.
Com.CommandText = "<LDAP://MyServer/DC=MyDomain,DC=Fabrikam,DC=com>;
(objectClass=*);ADsPath, objectclass;base"
' Set search preferences.
Com.Properties("Page Size") = 1000
Com.Properties("Timeout") = 30 'seconds
' Execute the query.
Set rs = Com.Execute
' Navigate the record set.
rs.MoveFirst
While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
If rs.Fields(i).Type = adVariant And Not (IsNull(rs.Fields(i).Value)) Then
Debug.Print rs.Fields(i).Name, " = "
For j = LBound(rs.Fields(i).Value) To UBound(rs.Fields(i).Value)
Debug.Print rs.Fields(i).Value(j), " # "
Next j
Else
Debug.Print rs.Fields(i).Name, " = ", rs.Fields(i).Value
End If
Next i
rs.MoveNext
Wend
rs.MoveLast
Debug.Print "No. of rows = ", rs.RecordCount
クエリ構文の詳細については、「検索フィルター構文 」を参照してください。
関連トピック
-
IDirectorySearch インターフェイス を使用した検索の