#0
by YF
Пытаюсь vb скриптом прочитать данные пользователей домена ActiveDirectory 2003: подключаюсь любым из двух способов: Set container_ = GetObject("WinNT://" & domainName_) Set container_ = GetObject("LDAP://CN=users,dc=" & domainName_ & ",dc=com") Беру данные: container_.Filter = Array("User") For Each user_ In container_ user_.Name 'все ОК user_.FullName 'все ОК user_.FirstName 'вот тут ошибка: "Свойства службы каталогов не могут быть найдены в кэше" Next Как забрать данные, те, на которые ругается? ЗЫ: При этом пишется нормально: 'Берем контейнер Users домена Set cont = GetObject("LDAP://CN=Users,dc=" & domainName_ & ",DC=com") 'Создаем нового пользователя с именем: Set usr = cont.Create("user", "CN=jeffsmith") 'Имя usr.Put "givenName", "givenName" 'Фамилия usr.Put "sn", "sn" 'Выводимое имя usr.Put "DisplayName", "DisplayName" 'Адрес электронной почты usr.Put "mail", "jeffsmith@w.ru" 'Имя входа пользователя usr.Put "userPrincipalName", "userPrincipalName" 'Имя входа пользователя (пред. Windows) usr.Put "samAccountName", "samAccountName" 'Зафиксируем изменения usr.SetInfo
#2
by YF
(*) Решил проблему, вот решение, вдруг кому пригодится: Одно замечание: работает для доменов вида: ИмяДомена.com, кому надо может изменить. Вот содержимое файла vbs: ' Это содержимое vbs файла. Этот файл создает текстовый файл ' с именем МоеИмяДомена_Users.txt в том же каталоге, где расположен сам vbs файл, ' читает пользователей домена и записывает из в этот самый текстовый файл '------- © YF 2010 -------------------- Sub ToTakeFromConteiner(paramConteiner, paramTextStream) 'Отфильтруем пользователей и возьмем их paramConteiner.Filter = Array("User") For Each user_ In paramConteiner If Ucase(user_.Class) = Ucase("user") Then ' прочитаем данные user_.GetInfoEx Array("cn","givenName","sn","DisplayName","mail","userPrincipalName","samAccountName"), 0 ' Сформируем строку str_ = user_.cn & "#" & user_.givenName & "#" & user_.sn & "#" & user_.DisplayName & "#" & user_.mail & "#" & user_.userPrincipalName & "#" & user_.samAccountName ' Запишем в текстовый файл paramTextStream.WriteLine str_ End if'Ucase(user_.Class) = Ucase("user") Next'Each user_ In container_ ' Если это была организационная группа, то нужно обработать рекурсивно ее подгруппы If UCase(paramConteiner.Class) = UCase("organizationalUnit") Then paramConteiner.Filter = Array ' Снова организационная единица, обработаем рекурсивно For Each conteinerFromOU_ In paramConteiner ToTakeFromConteiner conteinerFromOU_, paramTextStream Next'Each conteinerFromOU_ In paramConteiner End if'UCase(container_.Class) = UCase("organisationUnit") End Sub'ToTakeFromConteiner '------- © YF 2010 -------------------- Sub ToTakeFromDomain(paramDomainName, paramTextStream) ' Попробуем соединиться с доменом Set containerAll_ = GetObject("LDAP://dc=" & paramDomainName & ",dc=com") For Each container_ In containerAll_ ToTakeFromConteiner container_, paramTextStream Next'Each container_ In containerAll End Sub'ToTakeFromDomain '------- © YF 2010 -------------------- Sub ToGo(paramDomainName) ' Посмотрим папку, в которой лежит скрипт. В нее же и положим файл лога fullName_ = WScript.ScriptFullName name_ = WScript.ScriptName folderPath_ = Replace(fullName_, name_, "") ' Создадим текстовый файл, в который выгрузим данные о пользователях Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder(folderPath_) logFileFullName_ = paramDomainName & "_users.txt" Set textStream_ = Folder.CreateTextFile(logFileFullName_) ' Вызовем процедуру обработки домена ToTakeFromDomain paramDomainName, textStream_ ' Скажем, что все закончилось Set WshShell = CreateObject("WScript.Shell") wshShell.Run "notepad.exe " & logFileFullName_ End Sub'ToGo '------- © YF 2010 -------------------- ' Запустим основную процедуру ToGo "МоеИмяДомена"
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Установка Active Directory - сетевая папка не найдена!
- Новая статья "Active Directory для осваивающих"
- Получить данные в 1С из Active Directory
- Как создать пользователя домена (Active Directory) из 1С?
- Как можно получить список пользователей конфигурации
- Как получить разность дат (Нужно получить количество дней)
- Не получается открыть Active document Excel
- Получить данные в 1С из Active Directory (2)
- Утилиты для работы с пользователями и группами в Active Directory
- Пролистать список типов или Получить список видов документов, справочников и т.п
- Внешняя печатная форма на основе Active Document
- 1С 8.2. Импорт пользователей из Active Directory возможен?
В этой группе 1С
- Возможность ведения учета по нескольким организациям: плюсы и минусы
- Не выводятся колонтитулы
- Как в построитель отчета программно добавить группировки?
- Прием на работу - увольнение
- ЗУП: Расчет нормы дней за расчетный период
- Отличия УТ 10.3 от 11
- Неудачная попытка создания объекта (BinaryData)
- Отчет по типу валовая прибыль
- УТ 10.3 Отчет Взаиморасчеты с комиссионерами.
- Многофирменный учет в Бухгалтерии - разделить на 2 базы
- Договор с контрагентом по умолчанию
- Создать документ по заданному имени
- Как в РЛС проверить "В иерархии"?
- Выгрузка номенклатуры из Розница в excel
- Бухгалтерия 2.0 УСН ФИФО
- Сворачивание группировок в структуре подчиненности документов
- Организация аналитики по менеджерам в УТ 10
- Заказ покупателя - резервирование на складах
- Релиз 7.70.301 конфигурации ЗИК 2.3
- 8.2 ПолучитьИзВременногоХранилища возвращает Неопределено