2012-05-24 30 views
0

我試圖通過Thunderbird/Firefox配置文件自定義腳本從OS X移植到Windows 7.在OS X上,它們非常簡單,使用ldapsearch -x -h ldap.place.edu uid="username"從OpenLDAP服務器檢索電子郵件地址,實名等然後在加載應用程序之前將這些變量放入各種配置文件中。在VBS中執行OpenLDAP搜索

在Windows上,這很複雜,我開始嘗試使用Windows Server 2003附帶的search.vbs activedirectory/ldap工具,但它無法正常工作,我也試着簡單地編寫一個快速的vbs腳本來連接和查詢,但我總是得到錯誤或者服務器將無法處理請求,或者只是失敗......這是我最新的vbs腳本,完全flunks了...

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

想通了一小會兒回來,完全忘了這一點,所以在這裏。我意識到我試圖連接到一個匿名服務器,但提供了一個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