LDAP 方言
LDAP 方言是使用LDAP搜尋篩選語法的查詢語句格式。 搭配下列 ADSI 搜尋介面使用 LDAP 查詢語句:
- ActiveX Data Object (ADO) 介面,這是使用 OLE DB 的自動化介面。
- OLE DB,這是一組用於查詢資料庫的 C/C++ 介面。
- IDirectorySearch,這是 Active Directory 的 C/C++ 介面。
LDAP 方言字串是由分號分隔的四個部分所組成(;)。
基底辨別名稱。 例如:
<LDAP://DC=Fabrikam,DC=COM>
LDAP 搜尋篩選條件。 如需搜尋篩選的詳細資訊,請參閱 搜尋篩選語法。
要擷取之屬性的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
如需查詢語法的詳細資訊,請參閱 搜尋篩選語法。
相關主題