|
1С8 и LDAP. Работа с объектами Active Directory из под учетки обычного юзера. | ☑ | ||
|---|---|---|---|---|
|
0
duke55
15.11.14
✎
13:58
|
Пытаюсь освоить COM-взаимодействие с каталогом AD..
Тестируюсь на редактировании учеток пользователей... Вот кусок кода, который должен сменить пароль у тестового пользователя: ... DSE = ПолучитьCOMОбъект("LDAP://rootDSE"); DomObj = DSE.Get("defaultNamingContext"); objConnection = Новый COMОбъект("ADODB.Connection"); objConnection.Provider = "ADSDSOObject"; objConnection.Properties("User ID").Value = "administrator@test.local"; // учетка администратора домена objConnection.Properties("Password").Value= "passadmin"; //соответсвенно его пароль objConnection.Open("Active Directory Provider"); objCMD = Новый COMОбъект("ADODB.Command"); objCMD.ActiveConnection = objConnection; objCMD.CommandText = "Select ADsPath From 'LDAP://" + DomObj + "' Where objectClass='user' and objectCategory='person'"; objRS = objCMD.Execute(); objRS.MoveFirst(); Пока НЕ objRS.EOF Цикл objUser = ПолучитьCOMОбъект(objRS.Fields(0).Value); Если objUser.Get("Name")="testuser" Тогда objUser.SetPassword("testpass1"); КонецЕсли; objUser.Setinfo(); objRS.MoveNext(); КонецЦикла; ... Если запустить 1С от имени администратора домена, то все работает. Если от обычного пользователя - то выдает ошибку: Ошибка исполнения произвольного кода:{(20)}: Ошибка при вызове метода контекста (SetPassword): Произошла исключительная ситуация (0x80070005)... Что я делаю не так? Или что в настройках домена неправильно? |
|||
|
1
oleg_km
15.11.14
✎
14:33
|
У объектов AD нужно настроить доступ на изменение пользователям. Только это уже будет не AD а большая дыра
|
|||
|
2
duke55
15.11.14
✎
15:34
|
Получается, в моем случае указанные имя и пароль администратора домена в данном случае используются только для того, чтобы получить информацию? ... с объектом пользователя уже работает моя локальная учетка?
|
|||
|
3
oleg_km
15.11.14
✎
16:01
|
(2) Нет, с объектом работает учетка администратора. Просто винда поддерживает такое действия, как имперсонация - отдельные действия можно произвести под другой учеткой
|
|||
|
4
duke55
15.11.14
✎
16:08
|
... и замена пароля в список этих действий не входит... так?
|
|||
|
5
akaBrr
15.11.14
✎
17:50
|
(0) создание ком объекта в цикле для получения имени - лишнее, имя можно сразу получить в запросе
|
|||
|
6
duke55
15.11.14
✎
19:47
|
... а его никто и не создает в цикле...
Объекты выбираются запросом... А в цикле к ним происходит подключение... |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |