В дереве AD подразделения были сделаны как элементы OU. И немного поштудировав MSDN я нашел, что AD для любой записи представляет интересный реквизит objectGuid. Значение которого для каждого обьекта в дереве уникально.
Из этих двух положений и станцевался кусочек кода.
P.S. Надо учитывать, что objectGuid на выходе предоставляет собой массив байт.
- Домен=ПолучитьCOMОбъект("LDAP://OU=YYYY,DC=ХХХ,DC=loc")
- // Проверка по подразделениям
- Для каждого объекта из Домен Цикл
- Для каждого класса из объекта.ObjectClass Цикл
- Если НРег(класса)<>"organizationalunit" Тогда
- Продолжить;
- КонецЕсли;
- НаименованиеДепартамента = СтрЗаменить(объекта.Name,"OU=","");
- // Получим ГУИД
- _ГуидДепартамента = объекта.objectGuid;
- // Теперь переведем массив байт в более понятный текстовый вид
- _Гуид = "";
- _Длина = _ГуидДепартамента.GetLength(0);
- Для Счетчик = 1 по _Длина-1 Цикл
- _Гуид = _Гуид + "_"+Строка(_ГуидДепартамента.GetValue(Счетчик-1)));
- КонецЦикла;
- // Ну а дальше уже имея на руках название подразделения и его уникальный
- // текстовый код, проблем быть не должно.
- КонецЦикла;
- КонецЦикла;Syhi-подсветка кода
Комментариев нет:
Отправить комментарий