Opção explícita
adoCommand não ofuscante, adoConnection, strBase, strFilter, strAttributes
objRootDSE não ofuscante, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
objExcel não ofuscante, arrMembers, strMember
'Objetos da DEMORA da instalação.
Ajustar o adoCommand = o CreateObject (“ADODB.Command”)
Ajustar o adoConnection = o CreateObject (“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “fornecedor ativo do diretório”
adoCommand.ActiveConnection = adoConnection
'Domínio ativo inteiro do diretório da busca.
Ajustar o objRootDSE = o GetObject (“LDAP: //RootDSE”)
strDNSDomain = objRootDSE.Get (“defaultNamingContext”)
strBase = ""
'Filtro em grupos da distribuição.
strFilter = “(objectCategory=group)”
'Lista limitada vírgula de valores de atributo a recuperar.
strAttributes = “distinguishedName, membro, groupType, nome”
'Construir a pergunta da sintaxe de LDAP.
strQuery = strBase & “; ” & strFilter & “; ” & strAttributes & “; subtree”
adoCommand.CommandText = strQuery
adoCommand.Properties (de “tamanho página”) = 100
adoCommand.Properties (“intervalo de parada”) = 30
adoCommand.Properties (o “esconderijo resulta”) = falso
'Funcionar a pergunta.
Ajustar o adoRecordset = o adoCommand.Execute
Ajustar o objExcel = o CreateObject (“Excel.Application”)
Com objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Visível = retificar
'Enumerar o recordset resultante.
Fazer até adoRecordset.EOF
'Recuperar valores e exposição.
strName = adoRecordset.Fields (“distinguishedName”). Valor
groupType = adoRecordset.Fields (“groupType”). Valor
o groupName = substitui (adoRecordset.Fields (“nome”). Valor, “CN=”, "")
'começ somente grupos da distribuição
se groupType=2 ou groupType=4 ou groupType=8 então
irow=1
.ActiveWorkbook.Worksheets.Add
groupName de .ActiveSheet.Name=
arrMembers = adoRecordset.Fields (“membro”). Valor
Grupo distribuição de Wscript.Echo da “: ” & strName
Se IsNull (arrMembers) então
Wscript.Echo “-- ”
Mais
Para cada strMember nos arrMembers
Wscript.Echo “-- ” & strMember
Ajustar o objRootDSE = o GetObject (“LDAP: /“&strMember)
. As pilhas (iRow, 1) = substituem (objRootDSE.Name, “CN=”, o "")
irow=irow + 1
Em seguida
Terminar se
Terminar se
'Mover-se para o registro seguinte no recordset.
adoRecordset.MoveNext
Laço
. Colunas (1) .entirecolumn.autofit
Extremidade com
'Limpar.
adoRecordset.Close
adoConnection.Close
Ajustar o objExcel = nada
|