Opción explícita
adoCommand dévil, adoConnection, strBase, strFilter, strAttributes
objRootDSE dévil, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
objExcel dévil, arrMembers, strMember
'Objetos de la DIFICULTAD de la disposición.
Fijar el adoCommand = CreateObject (“ADODB.Command”)
Fijar el adoConnection = CreateObject (“ADODB.Connection”)
adoConnection.Provider = “ADsDSOObject”
adoConnection.Open “abastecedor activo del directorio”
adoCommand.ActiveConnection = adoConnection
'Dominio activo entero del directorio de la búsqueda.
Fijar el objRootDSE = GetObject (“LDAP: //RootDSE”)
strDNSDomain = objRootDSE.Get (“defaultNamingContext”)
strBase = ""
'Filtro en grupos de la distribución.
strFilter = “(objectCategory=group)”
'Lista delimitada coma de valores de cualidad a recuperar.
strAttributes = “distinguishedName, miembro, groupType, nombre”
'Construir la pregunta del sintaxis de LDAP.
strQuery = strBase y “; ” y strFilter y “; ” y strAttributes y “; sub-estructura”
adoCommand.CommandText = strQuery
adoCommand.Properties (“tamaño de página”) = 100
adoCommand.Properties (“descanso”) = 30
adoCommand.Properties (el “escondrijo resulta”) = falso
'Funcionar con la pregunta.
Fijar el adoRecordset = adoCommand.Execute
Fijar el objExcel = CreateObject (“Excel.Application”)
Con el objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Visible = verdad
'Enumerar el recordset resultante.
Hacer hasta adoRecordset.EOF
'Recuperar los valores y la exhibición.
strName = adoRecordset.Fields (“distinguishedName”). Valor
groupType = adoRecordset.Fields (“groupType”). Valor
el groupName = substituye (adoRecordset.Fields (“nombre”). Valor, “CN=”, "")
'conseguir solamente a grupos de la distribución
si groupType=2 o groupType=4 o groupType=8 entonces
irow=1
.ActiveWorkbook.Worksheets.Add
.ActiveSheet.Name= se fue (groupName, 31)
arrMembers = adoRecordset.Fields (“miembro”). Valor
'Grupo de la distribución de Wscript.Echo “: ” y strName
Si IsNull (arrMembers) entonces
'Wscript.Echo “-- ”
Para cada strMember en arrMembers
'Wscript.Echo “-- ” y strMember
Fijar el objRootDSE = GetObject (“LDAP: /“&strMember)
. Células (el iRow, 1) = substituye (objRootDSE.Name, “CN=”, "")
irow=irow + 1
Después
Terminar si
Terminar si
'Moverse al expediente siguiente en el recordset.
adoRecordset.MoveNext
Lazo
. Columnas (1).entirecolumn.autofit
Extremo con
'Limpiar.
adoRecordset.Close
adoConnection.Close
Fijar el objExcel = nada
|