• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

1c 8.1 получить информацию из Ad

  • Автор темы Автор темы mazzzay75
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
M

mazzzay75

Доброго утра всем!
Подскажите как можно получить в 1С информацию - ФИО и Email из AD домена
 
Да я уж давно все получил)
ТабЗнач=Новый ТаблицаЗначений;//выгрузим данные из LDAP
КомандаАДО = Новый COMОбъект("ADODB.Command");
СоединениеАДО = Новый COMОбъект("ADODB.Connection");
СоединениеАДО.Provider = "ADsDSOObject";
СоединениеАДО.Open("Active Directory Provider");
КомандаАДО.ActiveConnection = СоединениеАДО;
Попытка
RootDSE = ПолучитьCOMОбъект("LDAP://RootDSE");
НашДомен = RootDSE.Get("defaultNamingContext");
База = "<LDAP://" + НашДомен + ">";
Исключение
Сообщить("Не удалось подключиться к домену ;)");
КонецПопытки;
Фильтр = "(&(objectCategory=person)(objectClass=user)"+")";
Реквизиты = "DisplayName, Mail";
ТекстЗапроса = База + ";" + Фильтр + ";" + Реквизиты + ";subtree";
КомандаАДО.CommandText = ТекстЗапроса;
КомандаАДО.Properties("Page Size").Value = 100;
КомандаАДО.Properties("Timeout").Value = 30;
КомандаАДО.Properties("Cache Results").Value = Ложь;
ВыборкаАДО = КомандаАДО.Execute();
ТабЗнач.Колонки.Добавить("Имя");
ТабЗнач.Колонки.Добавить("Майл");
Пока НЕ ВыборкаАДО.EOF Цикл
ИмяСотр= СокрЛП(Строка(ВыборкаАДО.Fields("DisplayName").Value));
Майл = Нрег(СокрЛП(Строка(ВыборкаАДО.Fields("Mail").Value)));
//выгрузим данные в ТЗ
Если НЕ ПустаяСтрока(Майл) Тогда
НоваяСтрока=ТабЗнач.Добавить();
НоваяСтрока.Имя=ИмяСотр;
НоваяСтрока.Майл=Майл;
КонецЕсли;
ВыборкаАДО.MoveNext();
КонецЦикла;
ВыборкаАДО.Close();
СоединениеАДО.Close();
//все дальше делаем что хотим со значениями в ТабЗнач
 
Да я уж давно все получил)
ТабЗнач=Новый ТаблицаЗначений;//выгрузим данные из LDAP
КомандаАДО = Новый COMОбъект("ADODB.Command");
СоединениеАДО = Новый COMОбъект("ADODB.Connection");
СоединениеАДО.Provider = "ADsDSOObject";
СоединениеАДО.Open("Active Directory Provider");
КомандаАДО.ActiveConnection = СоединениеАДО;
Попытка
RootDSE = ПолучитьCOMОбъект("LDAP://RootDSE");
НашДомен = RootDSE.Get("defaultNamingContext");
База = "<LDAP://" + НашДомен + ">";
Исключение
Сообщить("Не удалось подключиться к домену ;)");
КонецПопытки;
Фильтр = "(&(objectCategory=person)(objectClass=user)"+")";
Реквизиты = "DisplayName, Mail";
ТекстЗапроса = База + ";" + Фильтр + ";" + Реквизиты + ";subtree";
КомандаАДО.CommandText = ТекстЗапроса;
КомандаАДО.Properties("Page Size").Value = 100;
КомандаАДО.Properties("Timeout").Value = 30;
КомандаАДО.Properties("Cache Results").Value = Ложь;
ВыборкаАДО = КомандаАДО.Execute();
ТабЗнач.Колонки.Добавить("Имя");
ТабЗнач.Колонки.Добавить("Майл");
Пока НЕ ВыборкаАДО.EOF Цикл
ИмяСотр= СокрЛП(Строка(ВыборкаАДО.Fields("DisplayName").Value));
Майл = Нрег(СокрЛП(Строка(ВыборкаАДО.Fields("Mail").Value)));
//выгрузим данные в ТЗ
Если НЕ ПустаяСтрока(Майл) Тогда
НоваяСтрока=ТабЗнач.Добавить();
НоваяСтрока.Имя=ИмяСотр;
НоваяСтрока.Майл=Майл;
КонецЕсли;
ВыборкаАДО.MoveNext();
КонецЦикла;
ВыборкаАДО.Close();
СоединениеАДО.Close();
//все дальше делаем что хотим со значениями в ТабЗнач

Можно с меньшим кодом и без "Попытки" ("Попытка" медленнее отрабатывается при компиляции). Если надо, вечером посмотрю в своих закромах, я делал подобное.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab