使用备用凭据使用VBscript保护LDAP对象操作

使用备用凭据使用VBscript保护LDAP对象操作,vbscript,active-directory,ldap,Vbscript,Active Directory,Ldap,我知道使用带有显式凭据的ADsDSOobject连接到AD对象以读取属性、列出成员等,并使用GetObject(“LDAP/…”)方法来操作这些对象(添加组成员、更改属性等),但是否有方法使用显式凭据操作属性和成员身份 我指的第一种方法是 Set conn = Server.CreateObject("ADODB.Connection") Set cmd = Server.CreateObject("ADODB.Command") conn.Provider = "ADsDSOobject" c

我知道使用带有显式凭据的ADsDSOobject连接到AD对象以读取属性、列出成员等,并使用GetObject(“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

但据我所知,执行向域组添加用户等任务的脚本示例都不能使用这种方法。有什么方法可以做到这一点吗?

在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) 
它工作正常,但总是使用当前用户的Credentail。这是因为
GetObject
不允许您指定备用凭据

要指定另一个credentails,需要将
GetObject
替换为


谢谢你,哈维!我不知道为什么我以前没有看到这些。@Harvey你好Harvey,我面临着类似的问题。我想使用备用凭据从active directory获取用户详细信息。你能给我一些它的代码样本吗。任何例子,任何线索都可以。我在stackoverflow上发布了我的问题。你能调查一下吗
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)