我正在尝试将Thunderbird / Firefox配置文件自定义脚本从OS X移植到Windows 7.在OS X上,它们非常简单,使用ldapsearch -x -h ldap.place.edu uid="username"
从OpenLDAP服务器检索电子邮件地址,真实姓名等在加载应用程序之前将这些变量抛出到各种配置文件中。
在Windows上这要复杂得多,我开始尝试使用Windows Server 2003附带的search.vbs activedirectory / ldap工具,但它无法正常工作,我也尝试过编写一个快速的vbs脚本来连接和查询,但我总是得到错误,服务器将不处理请求或只是失败...这是我最新的vbs脚本,完全没有...
Dim oConn,oRS,vSearch,vCount,vMailList,vValue,vProblem,vMsg
vProblem = False
vSearch = "(uid=username)"
Set oConn = CreateObject("ADODB.Connection")
oConn.Provider = "ADsDSOObject"
oConn.Open "ADs Provider", "ou=people,dc=place,dc=edu"
Set oRS = oConn.Execute("<LDAP://ldap.place.edu/dc=edu/dc=place>;" & vSearch &_";cn,mail")
vCount = 1
While not oRS.EOF
For Each vValue in oRS.Fields(0).value
WScript.Echo vValue
Next
vCount = vCount + 1
oRS.MoveNext
Wend
答案 0 :(得分:0)
稍微想出来,完全忘记了这一点,所以在这里。我意识到我正在尝试连接到一个匿名服务器,但是提供了一个DN,同时意味着密码级别的身份验证而不是我需要的简单版本。
'Server name
sRoot = "LDAP://server"
Dim oDS: Set oDS = GetObject("LDAP:")
'Don't provide a DN for anonymous authentication, also &H0010 implies simple auth mode
Dim oAuth: Set oAuth = oDS.OpenDSObject(sRoot, "", "", &H0010)
Dim oConn: Set oConn = CreateObject("ADODB.Connection")
oConn.Provider = "ADSDSOObject"
oConn.Open "Ads Provider", sDN
Dim rs
'Execute query
Set rs = oConn.Execute("<" & sRoot & ">;(uid=testuser);cn,mail;subtree")
'retrieve values
z = rs.Fields.Item(0).Value
x = rs.Fields.Item(1).Value