Wahl ausdrücklich
Schwaches adoCommand, adoConnection, strBase, strFilter, strAttributes
Schwaches objRootDSE, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
Schwaches objExcel, arrMembers, strMember
'Einstellung AUFHEBEN-Gegenstände.
adoCommand = CreateObject („ADODB.Command“) einstellen
adoConnection = CreateObject („ADODB.Connection“) einstellen
adoConnection.Provider = „ADsDSOObject“
adoConnection.Open „aktiver Verzeichnis-Versorger“
adoCommand.ActiveConnection = adoConnection
'Suchgesamtes aktives Verzeichnisgebiet.
objRootDSE = GetObject einstellen („LDAP: //RootDSE“)
strDNSDomain = objRootDSE.Get („defaultNamingContext“)
strBase = ""
'Filter auf Verteilungsgruppen.
strFilter = „(objectCategory=group)“
'Komma abgegrenzte Liste zurückzuholenden der Attributwerte.
strAttributes = „distinguishedName, Mitglied, groupType, Name“
'Die LDAP Syntaxfrage konstruieren.
strQuery = strBase u. „; “ u. strFilter u. „; “ u. strAttributes u. „; Unterbaum“
adoCommand.CommandText = strQuery
adoCommand.Properties („Seiten-Größe“) = 100
adoCommand.Properties („Abschaltung“) = 30
adoCommand.Properties („Pufferspeicher resultiert“), = falsch
'Die Frage laufen lassen.
adoRecordset = adoCommand.Execute einstellen
objExcel = CreateObject („Excel.Application“) einstellen
Mit objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Sichtbar = ausrichten
'Das resultierende recordset aufzählen.
Bis adoRecordset.EOF tun
'Werte und Anzeige zurückholen.
strName = adoRecordset.Fields („distinguishedName“). Wert
groupType = adoRecordset.Fields („groupType“). Wert
groupName = ersetzen (adoRecordset.Fields („Name“). Wert, „CN=“, "")
'nur Verteilungsgruppen erhalten
wenn groupType=2 oder groupType=4 oder groupType=8 dann
irow=1
.ActiveWorkbook.Worksheets.Add
.ActiveSheet.Name= verließ (groupName, 31)
arrMembers = adoRecordset.Fields („Mitglied“). Wert
'Wscript.Echo „Verteilungs-Gruppe: “ u. strName
Wenn IsNull (arrMembers) dann
'Wscript.Echo „-- “
Sonst
Für jedes strMember in den arrMembers
'Wscript.Echo „-- “ u. strMember
objRootDSE = GetObject einstellen („LDAP: /„&strMember)
. Zellen (iRow, 1) = ersetzen (objRootDSE.Name, „CN=“, "")
irow=irow + 1
Zunächst
Beenden wenn
Beenden wenn
'Auf die folgende Aufzeichnung im recordset sich bewegen.
adoRecordset.MoveNext
Schleife
. Spalten (1).entirecolumn.autofit
Ende mit
'Aufräumen.
adoRecordset.Close
adoConnection.Close
objExcel einstellen = nichts
|