Пытаюсь освоить COM-взаимодействие с каталогом AD..
Тестируюсь на редактировании учеток пользователей...
Вот кусок кода, который должен сменить пароль у тестового пользователя:
...
DSE = ПолучитьCOMОбъект("LDAP://rootDSE");
DomObj = DSE.Get("defaultNamingContext");
objConnection = Новый COMОбъект("ADODB.Connection");
objConnection.Provider = "ADSDSOObject";
objConnection.Properties("User ID").Value = "
[email protected]"; // учетка администратора домена
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)...
Что я делаю не так? Или что в настройках домена неправильно?