Frage : VB Index zum Exporttarif aller Verteilungsgruppen und -mitglieder

Ich benötige einen schnellen vb Index, der alle Verteilungsgruppen und dort -mitglieder in ein übertreffendiagramm exportiert.  Ich fand ein, das genau tut, was ich wünsche, aber ich einen Gruppennamen auf einmal eingeben muss.  Ich wünsche ihn jede Gruppe zu einem unterschiedlichen Arbeitsblatt extrahieren, nenne die Arbeit für das goup und verzeichne das members.

I möchte es gegen einen OU „Verteilung laufen lassen gruppiere“, der bereits meine ganze Verteilung groups
enthält
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:
Dim objGroup, objExcel, iRow, strUser, strGroup, strOU

strGroup = InputBox („den Gruppen-Namen, den Sie exportieren möchten“, „Gruppen-Mitgliedsexport“ eintragen)

objGroup = GetObject einstellen („LDAP: //CN=“ u. strGroup u.“, ou=BD Verteilungs-Gruppen, dc=blackdiamond, dc=local ")

objExcel = CreateObject („Excel.Application“) einstellen
Mit objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Sichtbar = ausrichten
. Worksheets.Item (1).Name = mittler (objGroup.Name, instr (1, objGroup.Name, „=") + 1)
irow=1

Für jedes strUser in objGroup.Member
objUser = GetObject einstellen („LDAP: /“ u. strUser)
. Zellen (iRow, 1) = objUser.CN
irow=irow + 1
Zunächst
. Spalten (1).entirecolumn.autofit
Ende mit

objExcel einstellen = nichts
objGroup einstellen = nichts
Wscript.Quit

Antwort : VB Index zum Exporttarif aller Verteilungsgruppen und -mitglieder

der Index läuft durch ANZEIGE, erhält alle Verteilungsgruppen und für jedes herstellt unterschiedliches Arbeitsblatt innen übertreffen und verzeichnen ihre Mitglieder re.
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:
6:
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:
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= groupName
	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 bewegen.
adoRecordset.MoveNext
Schleife
. Spalten (1).entirecolumn.autofit
Ende mit

'Aufräumen.
adoRecordset.Close
adoConnection.Close
objExcel einstellen = nichts
Weitere Lösungen  
 
programming4us programming4us