Explicit alternativ
Dunkel adoCommand, adoConnection, strBase, strFilter, strAttributes
Dunkel objRootDSE, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
Dunkel objExcel, arrMembers, strMember
'Ställa in ADO anmärker.
Fastställd adoCommand = CreateObject (”ADODB.Command”)
Fastställd adoConnection = CreateObject (”ADODB.Connection”)
adoConnection.Provider = ”ADsDSOObject”,
adoConnection.Open ”aktivarkivfamiljeförsörjare”,
adoCommand.ActiveConnection = adoConnection
'För aktivarkiv för sökande helt område.
Fastställd objRootDSE = GetObject (”LDAP: //RootDSE”)
strDNSDomain = objRootDSE.Get (”defaultNamingContext”)
strBase = "",
'Filtrera på fördelningsgrupper.
strFilter = ”(objectCategory=group)”,
'Det avgränsade kommat listar av attribut värderar för att hämta.
strAttributes = ”distinguishedName, medlem, groupType som är känd”,
'Tankeskapelse LDAP-syntaxqueryen.
strQuery = strBase & ”; ” & strFilter & ”; ” & strAttributes & ”; subtree”,
adoCommand.CommandText = strQuery
adoCommand.Properties (”sida storleksanpassar”), = 100
adoCommand.Properties (”frånslagningstid”) = 30
adoCommand.Properties (”cachen resulterar”), = falskt
'Kör queryen.
Fastställd adoRecordset = adoCommand.Execute
Fastställd objExcel = CreateObject (”Excel.Application”)
Med objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Synligt = True
'Enumerate den resulterande recordseten.
Gör till adoRecordset.EOF
'Hämta värderar och skärm.
strName = adoRecordset.Fields (”distinguishedName”). Värdera
groupType = adoRecordset.Fields (”groupType”). Värdera
groupName = byter ut (adoRecordset.Fields (”namnge”). Värdera ”CN=”, ""),
'få endast fördelningsgrupper
om groupType=2 eller groupType=4 eller groupType=8 därefter
irow=1
.ActiveWorkbook.Worksheets.Add
.ActiveSheet.Name=-groupName
arrMembers = adoRecordset.Fields (”medlem”). Värdera
Wscript.Echo-”fördelningsgrupp: ” & strName
Om IsNull (arrMembers) därefter
Wscript.Echo ”,-- ”,
Annars
För varje strMember i arrMembers
Wscript.Echo ”,-- ” & strMember
Fastställd objRootDSE = GetObject (”LDAP: /”&strMember)
. Celler (iRow, 1) = byter ut (objRootDSE.Name, ”CN=”, "")
irow=irow + 1
Därefter
Avsluta om
Avsluta om
'Flyttning till det nästa rekordet i recordseten.
adoRecordset.MoveNext
Kretsa
. Kolonner (1) .entirecolumn.autofit
Avsluta med
'Rent övre.
adoRecordset.Close
adoConnection.Close
Fastställd objExcel = ingenting
|