Задача. Нужно прочитать из AD данные по пользователю (название отдела, номер телефона). Я знаю имя учетной записи пользователя. В структуре AD пользователи расположены в разных папках. Я знаю только имя учетной записи и мне просто нужно получить некоторые свойства (например, номер телефона). Платформа 8.2. По результатам поиска я понял что нужно копать в строну LDAP, но пока не соображу, как правильно сформировать строку подключения.
Set objCommand = CreateObject("ADODB.Command") Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "SELECT name FROM 'LDAP://server:389/ou=devices,ou=network,dc=sample,dc=local' WHERE owner='uid=me" Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst Do Until objRecordSet.EOF Wscript.Echo objRecordSet.Fields.item("name").value objRecordSet.MoveNext Loop
В результате получилось так АДОКоннектор = Новый COMОбъект("ADODB.Connection"); АДОКоннектор.ConnectionString = "Provider=""ADsDSOObject"""; АДОКоннектор.Open();
ТекстЗапроса = " |SELECT AdsPath |FROM 'LDAP://" + ИмяДомена + "' |WHERE | objectCategory = 'user' | and objectClass = 'person' | and SAMAccountName = '" + УчетнаяЗапись + "' |ORDER BY sn |";
ВыборкаАДО = АДОКоннектор.Execute(ТекстЗапроса);
Если НЕ ВыборкаАДО.EOF Тогда ПутьОбъекта = ВыборкаАДО.Fields("AdsPath").Value; ОбъектАД = ПолучитьCOMОбъект(ПутьОбъекта); Сообщить(ОбъектАД.sAMAccountName); Сообщить(ОбъектАД.cn); Сообщить(ОбъектАД.department); Сообщить(ОбъектАД.manager); Сообщить(ОбъектАД.telephoneNumber); Сообщить(ОбъектАД.mail); Сообщить(ОбъектАД.title); КонецЕсли;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан