绑定到LDAP服务器时,ADO可以访问ADsPath和Name以外的其他属性吗?
以下是我用来绑定和查询互联网上LDAP服务器的代码:
Set ado = CreateObject("ADODB.Connection")
ado.Provider = "ADSDSOObject"
ado.Properties("User ID") = ""
ado.Properties("Password") = ""
ado.Properties("Encrypt Password") = False
ado.Open "NameSearch"
serverName = "xxxxxx.xxxx.xxx"
filterStr = "(objectClass=*)"
Set Ol= ado.Execute("<LDAP://" & serverName & ">;" & filterStr & ";ADsPath;SubTree")
While Not Ol
WScript.Echo Ol.Fields(0).value
Ol.MoveNext
Wend
另外如何将上述代码中的搜索库分配给“o = xxxxxx University; c = US”?
答案 0 :(得分:3)
请参阅How To Use ADO to Access Objects Through an ADSI LDAP Provider。
连接对象Execute方法 CommandText(第一个对象)是一个LDAP 查询由四个元素组成 用分号隔开,在 格式如下:
<LDAP://server/adsidn>;ldapfilter;attributescsv;scope
其中
adsidn
是专有名称 (DN)你的出发点 查询表达ADsPath格式 “/”分隔符和。的根 左边的命名空间。你也可以 使用X.500样式属性名称 格式与相对区分 用逗号和根分隔的名称 右侧的名称空间。要返回
ADsPath
,class
和cn
所有对象的属性 收件人容器 Exchange服务器,你可以使用 以下CommandText(URL格式):
LDAP :; (objectClass的= *); Active Directory路径,对象类,CN;子树
把它们放在一起,
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set conn = New ADODB.Connection
conn.Provider = "ADSDSOObject"
conn.Open "ADs Provider"
Set rs = conn.Execute( _
"<LDAP://server/o=organization/o=xxxxxx University/c=US>;" _
& "(objectClass=*);ADsPath,objectClass,cn;subtree")
While Not rs.EOF
Debug.Print rs.Fields(0).Value, rs.Fields(1).Value, _
rs.Fields(2).Value
rs.MoveNext
Wend
conn.Close