Opzione esplicita
adoCommand fioco, adoConnection, strBase, strFilter, strAttributes
objRootDSE fioco, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
objExcel fioco, arrMembers, strMember
'Oggetti di DIFFICOLTÀ di messa a punto.
Regolare il adoCommand = CreateObject (“ADODB.Command„)
Regolare il adoConnection = CreateObject (“ADODB.Connection„)
adoConnection.Provider = “ADsDSOObject„
adoConnection.Open “fornitore attivo dell'indice„
adoCommand.ActiveConnection = adoConnection
'Intero dominio attivo dell'indice di ricerca.
Regolare il objRootDSE = GetObject (“LDAP: //RootDSE„)
strDNSDomain = objRootDSE.Get (“defaultNamingContext„)
strBase = ""
'Filtro sui gruppi di distribuzione.
strFilter = “(objectCategory=group)„
'Lista delimitata virgola dei valori di attributo da richiamare.
strAttributes = “distinguishedName, membro, groupType, nome„
'Costruire la domanda di sintassi di LDAP.
strQuery = strBase & “; „ & strFilter & “; „ & strAttributes & “; sotto-albero„
adoCommand.CommandText = strQuery
adoCommand.Properties (“formato di pagina„) = 100
adoCommand.Properties (“prespegnimento„) = 30
adoCommand.Properties (“il nascondiglio risulta„) = falso
'Fare funzionare la domanda.
Regolare il adoRecordset = adoCommand.Execute
Regolare il objExcel = CreateObject (“Excel.Application„)
Con objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Visibile = allineare
'Enumerare il recordset risultante.
Fare fino a adoRecordset.EOF
'Richiamare i valori e l'esposizione.
strName = adoRecordset.Fields (“distinguishedName„). Valore
groupType = adoRecordset.Fields (“groupType„). Valore
il groupName = sostituisce (adoRecordset.Fields (“nome„). Valore, “CN=„, "")
'ottenere soltanto i gruppi di distribuzione
se groupType=2 o groupType=4 o groupType=8 allora
irow=1
.ActiveWorkbook.Worksheets.Add
.ActiveSheet.Name= ha andato (groupName, 31)
arrMembers = adoRecordset.Fields (“membro„). Valore
Gruppo di distribuzione 'di Wscript.Echo “: „ & strName
Se IsNull (arrMembers) allora
'Wscript.Echo “-- „
Altrimenti
Per ogni strMember in arrMembers
'Wscript.Echo “-- „ & strMember
Regolare il objRootDSE = GetObject (“LDAP: /“&strMember)
. Cellule (iRow, 1) = sostituisce (objRootDSE.Name, “CN=„, "")
irow=irow + 1
Dopo
Concluder se
Concluder se
'Muover verso l'annotazione seguente nel recordset.
adoRecordset.MoveNext
Ciclo
. Colonne (1).entirecolumn.autofit
Estremità con
'Pulire.
adoRecordset.Close
adoConnection.Close
Regolare il objExcel = niente
|