Вариант точный
Тусклое adoCommand, adoConnection, strBase, strFilter, strAttributes
Тусклое objRootDSE, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
Тусклое objExcel, arrMembers, strMember
'Предметы СУЕТЫ установки.
Установите adoCommand = CreateObject («ADODB.Command»)
Установите adoConnection = CreateObject («ADODB.Connection»)
adoConnection.Provider = «ADsDSOObject»
adoConnection.Open «активно провайдер директории»
adoCommand.ActiveConnection = adoConnection
'Домен директории поиска весь активно.
Установите objRootDSE = GetObject («LDAP: //RootDSE»)
strDNSDomain = objRootDSE.Get («defaultNamingContext»)
strBase = ""
'Фильтр на группах распределения.
strFilter = «(objectCategory=group)»
'Список размежеванный запятым значений атрибута, котор нужно восстановить.
strAttributes = «distinguishedName, член, groupType, имя»
'Построьте вопрос синтаксиса LDAP.
strQuery = strBase & «; » & strFilter & «; » & strAttributes & «; поддерево»
adoCommand.CommandText = strQuery
adoCommand.Properties («размер страницы») = 100
adoCommand.Properties («перерыв») = 30
adoCommand.Properties («тайник приводит к») = ложно
'Побегите вопрос.
Установите adoRecordset = adoCommand.Execute
Установите objExcel = CreateObject («Excel.Application»)
С objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Видимо = True
'Перечислите приводя к recordset.
Не сделать до adoRecordset.EOF
'Восстановите значения и индикацию.
strName = adoRecordset.Fields («distinguishedName»). Значение
groupType = adoRecordset.Fields («groupType»). Значение
groupName = заменяет ть (adoRecordset.Fields («имя»). Значение, «CN=», "")
'получите только группы распределения
если groupType=2 или groupType=4 или groupType=8 после этого
irow=1
.ActiveWorkbook.Worksheets.Add
.ActiveSheet.Name= вышло (groupName, 31)
arrMembers = adoRecordset.Fields («член»). Значение
Группа распределения 'Wscript.Echo «: » & strName
Если IsNull (arrMembers) после этого
'Wscript.Echo «-- »
Еще
Для каждого strMember в arrMembers
'Wscript.Echo «-- » & strMember
Установите objRootDSE = GetObject («LDAP: /«&strMember)
. Клетки (iRow, 1) = заменяет ть (objRootDSE.Name, «CN=», "")
irow=irow + 1
Затем
Закончитесь если
Закончитесь если
'Двиньте к следующему показателю в recordset.
adoRecordset.MoveNext
Петля
. Колонки (1).entirecolumn.autofit
Конец с
'Очистьте вверх.
adoRecordset.Close
adoConnection.Close
Установите objExcel = ничего
|