Set command = CreateObject("ADODB.Command")
Set command.ActiveConnection = oConnect
command.CommandText =
"SELECT AdsPath, cn FROM 'LDAP://DC=Fabrikam,DC=com' WHERE objectClass = '*'"
次のコード例では、ADOタイプライブラリ (msadoXX.dll) を参照の1つとして含めます。
Dim command As New Command
Set command.ActiveConnection = oConnect
command.CommandText = "<LDAP://DC=Fabrikam,DC=com>;(objectClass=*);AdsPath, cn; subTree"
検索のサイズ制限を指定する整数値。 Active Directoryの場合、サイズ制限によって返されるオブジェクトの最大数が指定されます。 サイズ制限に達すると、サーバーは検索を停止し、累積された結果を返します。 既定値は無制限です。"。
並べ替え基準"
並べ替えキーとして使用する属性のコンマ区切りリストを指定する文字列。 このプロパティは、サーバー側の並べ替えのLDAP制御をサポートするディレクトリサーバーに対してのみ機能します。 Active Directoryは並べ替え制御をサポートしていますが、特に結果セットが大きい場合は、サーバーのパフォーマンスに影響を与える可能性があります。 Active Directoryは1つの並べ替えキーのみをサポートしていることに注意してください。 既定では、並べ替えは行われません。"。
Const ADS_SCOPE_ONELEVEL = 1
Const ADS_CHASE_REFERRALS_EXTERNAL = &H40
Dim Com As New Command
Com.Properties("Page Size") = 999
Com.Properties("Timeout") = 30 ' Seconds
Com.Properties("searchscope") = ADS_SCOPE_ONELEVEL
Com.Properties("Chase referrals") = ADS_CHASE_REFERRALS_EXTERNAL
Com.Properties("Cache Results") = False ' Do not cache the result set.
Set rs = Com.Execute
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Name, rs.Fields(i).Type
Next i
'--------------------------
' Navigate the record set.
'--------------------------
rs.MoveFirst
lstResult.Clear ' Clear the user interface.
While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
' For Multi Value attribute
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), " # "
lstResult.AddItem rs.Fields(i).Value(j)
Next j
Else
' For Single Value attribute.
Debug.Print rs.Fields(i).Name, " = ", rs.Fields(i).Value
lstResult.AddItem rs.Fields(i).Value
End If
Next i
rs.MoveNext
Wend
次のコード例では、LDAPサーバー上のユーザーアカウントを無効にします。
Dim X as IADs
Dim con As New Connection, rs As New Recordset
Dim MyUser As IADsUser
con.Provider = "ADsDSOObject"
con.Open "Active Directory Provider", "CN=Test,CN=Users,DC=Fabrikam,DC=COM,O=INTERNET", "Password"
Set rs = con.Execute("<LDAP://MyMachine/DC=MyDomain,DC=Fabrikam,DC=com>;(objectClass=User);ADsPath;onelevel")
While Not rs.EOF
' Bind to the object to make changes
' to it because ADO is currently read-only.
MyUser = GetObject(rs.Fields(0).Value)
MyUser.AccountDisabled = True
MyUser.SetInfo
rs.MoveNext
Wend