Questione : Scritto di VB alla lista di esportazione di tutti i gruppi e membri di distribuzione

Ho bisogno di uno scritto rapido del vb che esporterà tutti i gruppi e là membri di distribuzione verso una tabella di supremazia.  Ho trovato uno che fa esattamente che cosa voglio ma devo introdurre un nome del gruppo alla volta.  Lo voglio estrarre ogni gruppo ad uno strato di lavoro separato, chiamo il lavoro per il goup ed elenco il members.

I vorrei farlo funzionare contro un OU “distribuzione raggruppo„ che già contiene tutta la mia distribuzione groups
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
objGroup notpretty del >Dim " del class= " " di codeSnippet766777 del id= del

Risposta : Scritto di VB alla lista di esportazione di tutti i gruppi e membri di distribuzione

lo scritto funziona attraverso l'ANNUNCIO, ottiene tutti i gruppi di distribuzione e per ciascuno genera il manuale separato dentro eccelle ed elenca i loro membri.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
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
	groupName di .ActiveSheet.Name=
	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
Altre soluzioni  

 
programming4us programming4us