Безопасное управление объектами LDAP с помощью VBscript с использованием альтернативных учетных данных - PullRequest
5 голосов
/ 12 марта 2011

Мне известно об использовании 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

Но ни один из примеров сценариев, выполняющих такие задачи, как добавление пользователя в группу домена, не может использовать этот подход, насколько мне известно. Есть ли способ сделать это как-нибудь?

1 Ответ

5 голосов
/ 15 марта 2011

В 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) 

Работает нормально, но всегда использует ваши учетные данные текущего пользователя. Это потому, что GetObject не позволяет вам указать альтернативные учетные данные.

Чтобы указать другие учетные данные, вам нужно заменить GetObject на 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) 
...