在VBS中执行OpenLDAP搜索

时间:2012-05-24 19:09:02

标签: windows vbscript ldap

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

1 个答案:

答案 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