Expliciete optie
Schemerige adoCommand, adoConnection, strBase, strFilter, strAttributes
Schemerige objRootDSE, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
Schemerige objExcel, arrMembers, strMember
'De voorwerpen van de DRUKTE van de opstelling.
Reeks adoCommand = CreateObject („ADODB.Command“)
Vastgestelde adoConnection = CreateObject („ADODB.Connection“)
adoConnection.Provider = „ADsDSOObject“
adoConnection.Open de „Actieve Leverancier van de Folder“
adoCommand.ActiveConnection = adoConnection
'Domein van de Folder van het onderzoek het volledige Actieve.
Reeks objRootDSE = GetObject („LDAP: //RootDSE“)
strDNSDomain = objRootDSE.Get („defaultNamingContext“)
strBase = ""
'Filter op distributiegroepen.
strFilter = „(objectCategory=group)“
'Komma afgebakende lijst van terug te winnen attributenwaarden.
strAttributes = „distinguishedName, lid, groupType, naam“
'Concept de LDAP syntaxisvraag.
strQuery = strBase & „; “ & strFilter & „; “ & strAttributes & „; onderverdeling“
adoCommand.CommandText = strQuery
adoCommand.Properties (de „Grootte van de Pagina“) = 100
adoCommand.Properties („Onderbreking“) = 30
adoCommand.Properties (de „Resultaten van het Geheime voorgeheugen“) = Vals
'Looppas de vraag.
Reeks adoRecordset = adoCommand.Execute
Reeks objExcel = CreateObject („Excel.Application“)
Met objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Zichtbaar = Waar
'Som het voortvloeien op recordset.
Doe tot adoRecordset.EOF
'Win waarden en vertoning terug.
strName = adoRecordset.Fields („distinguishedName“). Waarde
groupType = adoRecordset.Fields („groupType“). Waarde
groupName = vervang (adoRecordset.Fields („naam“). Waarde, „CN=“, "")
'krijg slechts distributiegroepen
als groupType=2 of groupType=4 of groupType=8 toen
irow=1
.ActiveWorkbook.Worksheets.Add
.ActiveSheet.Name= groupName
arrMembers = adoRecordset.Fields („lid“). Waarde
Wscript.Echo de „Groep van de Distributie: “ & strName
Als IsNull (arrMembers) toen
Wscript.Echo „-- “
Anders
Voor Elke strMember in arrMembers
Wscript.Echo „-- “ & strMember
Reeks objRootDSE = GetObject („LDAP: /„&strMember)
. De cellen (iRow, 1) = vervangen (objRootDSE.Name, „CN=“, "")
irow=irow + 1
Daarna
Eind als
Eind als
'Beweging aan het volgende verslag in recordset.
adoRecordset.MoveNext
Lijn
. Kolommen (1) .entirecolumn.autofit
Eind met
'Maak schoon.
adoRecordset.Close
adoConnection.Close
Plaats objExcel = niets
|