2011-03-12 63 views
5

我知道使用具有顯式憑證的ADsDSOobject連接到AD對象以讀取屬性,列表成員等。並且GetObject(「LDAP // ...」)用於操作這些對象的方法(添加組成員,更改屬性等),但有沒有一種方法可以使用顯式憑證來操作屬性和成員資格?使用備用憑證使用VBscript實現安全的LDAP對象操作

我指的是第一種方法是一樣的東西......

Set conn = Server.CreateObject("ADODB.Connection") 
Set cmd = Server.CreateObject("ADODB.Command") 
conn.Provider = "ADsDSOobject" 
conn.Properties("User ID") = AD_Username 
conn.Properties("Password") = AD_Password 
conn.Properties("Encrypt Password") = True 
conn.Open "Active Directory Provider" 
Set cmd.ActiveConnection = conn 

但沒有一個腳本示例執行任務,如將用戶添加到域組可以儘量使用這種方法,因爲我知道。有沒有辦法做到這一點?

回答

5

在VBScript中,您經常使用ADSI將用戶添加到組中。以下是將用戶添加到域組的示例代碼

Set objUser = GetObject("LDAP://CN=jeffsmith,DC=fabrikam,DC=com") 
Set objGroup = GetObject("LDAP://CN=group1,DC=fabrikam,DC=com") 
objGroup.add(objUser.ADsPath) 

它工作正常,但它始終使用您當前的用戶credentails。這是因爲GetObject不允許您指定備用憑證。

要指定其他credentails,你需要OpenDSObject

Const ADS_SECURE_AUTHENTICATION = 1 
Set openDS = GetObject("LDAP:") 

Set objUser = openDS.OpenDSObject("LDAP://CN=jeffsmith,DC=fabrikam,DC=com", 
    "username", 
    "password", 
    ADS_SECURE_AUTHENTICATION) 

Set objGroup = openDS.OpenDSObject("LDAP://CN=group1,DC=fabrikam,DC=com", 
    "username", 
    "password", 
    ADS_SECURE_AUTHENTICATION) 

objGroup.add(objUser.ADsPath) 
+0

感謝哈維替換GetObject!我不知道爲什麼我以前沒有看到。 – Skatterbrainz 2011-03-16 18:37:21

相關問題