Получать все нужные данные из AD запросом — просто.
На инфостарте полно примеров с получением данных из AD запросом. Например, получение почтового адреса пользователя:
query = "SEL ECT ADsPath FR OM 'LDAP://DC="+СокрЛП(Домен.Код)+"' WHERE SAMAccountName='"+Стр.Логин+"'"; rs = conn.Execute(query); Пока НЕ rs.EOF() Цикл obj = ПолучитьCOMОбъект(rs.Fields(0).Value); Если obj.Class="user" Тогда Стр.НоваяПочта=СокрЛП(obj.EmailAddress); Если Стр.НоваяПочта<>Стр.СтараяПочта Тогда Стр.Установить=Истина; КонецЕсли; КонецЕсли; rs.MoveNext(); КонецЦикла;
Все данные можно получить запросом, однако мы получаем только ADsPath, потом получаем com-объект и уже из его свойств
достаем класс объекта и адрес электронной почты. Тут может быть засада с получением некоторых com-объектов, может
просто не хватить прав.
Я бы сделал так:
query = "SEL ECT objectClass,mail FR OM 'LDAP://DC="+СокрЛП(Домен.Код)+"' WHERE SAMAccountName='"+Стр.Логин+"'"; rs = conn.Execute(query); Пока НЕ rs.EOF() Цикл Если rs.Fields("objectClass").Value="user" Тогда Стр.НоваяПочта=СокрЛП(rs.Fields("mail").Value); Если Стр.НоваяПочта<>Стр.СтараяПочта Тогда Стр.Установить=Истина; КонецЕсли; КонецЕсли; rs.MoveNext(); КонецЦикла;
Не понятно почему, возможность получать поле по имени нигде в примерах я не встречал.
P.S.
Вопрос:
Можно-ли получить поле по номеру?
Ответ: Можно. Но если полей несколько, мы не сможем только по номеру поля сказать какие данные мы получили из поля.
Поскольку порядок полей, результата запроса, произвольный.
(0)
Если я не ошибаюсь то переменная conn присваивается как раз COM соединением, выше по коду вы должны были написать
Так где ж здесь «Получение данных запросом, без получения com-объекта.»
З.Ы. Жёлты заголовок. надеялся увидеть способ работы с LDAP из под linux.
(1) KroVladS, согласен в заголовке желтизна присутствует, прошу прощения. Просто хотелось привлечь внимание.
Действительно как то не похоже, что без com-а
(3) soap, com-объект по ADsPath не создается. см. obj = ПолучитьCOMОбъект(rs.Fields(0).Value); из первого примера
Отправил новый заголовок на модерацию