Frage : VBScript, zum der Mitglieder der Gruppen und des Exports in Excel zu exportieren

hihi, das

I morgens versuchend, Mitglieder der Gruppen in Excel zu exportieren, jede Gruppe ist eine neue worksheet.

The Antwort in den Arbeiten dieser Frage O.K.:

http://www.experts-exchang e.com/Prog ramming/Languages/Visual_Basic/VB_Script/Q_26298266.html? sfQueryTermInfo=1+10+30+distribut+excel+export+get+group+member+script

Except, das ich möchte, dass es gerade jedes Arbeitsblatt, mich bevölkert nicht zu bitten, O.K. für jeden user.

The maximalen Buchstaben anzuklicken Länge für Arbeitsblattnamen 31 Buchstaben ist, einige der Gruppen, sind länger, als 31 Buchstaben und der Index, ist dort jede mögliche Weise, den Arbeitsblattnamen bei 31 Buchstaben gerade mit einer Kappe zu bedecken stoppt?

thanks

Antwort : VBScript, zum der Mitglieder der Gruppen und des Exports in Excel zu exportieren

Hallo, habe ich heraus die WScript.Echo Linien kommentiert und diese Linie geändert
      .ActiveSheet.Name= groupName

zu diesem
      .ActiveSheet.Name= verließ (groupName, 31)

Respekt,

Rob.
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= 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
Weitere Lösungen  
 
programming4us programming4us