0

我正在尝试将 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
4

1 回答 1

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
于 2012-05-30T22:42:41.990 回答