Question : Manuscrit de VB à la liste d'exportation de tous les groupes et membres de distribution

J'ai besoin d'un manuscrit rapide de vb qui exportera tous les groupes et là membres de distribution vers un diagramme d'exceler.  J'ai trouvé un qui fait exactement ce que je veux mais je dois écrire un nom de groupe à la fois.  Je veux qu'il extraie chaque groupe à une fiche de travail séparée, appelle le travail pour le goup, et énumère le members.

I voudrais le courir contre une OU « distribution groupe » qui contient déjà toute ma distribution groups
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 " de " codeSnippet766777 d'id= " de
Dim de class=, objExcel, iRow, strUser, strGroup, strOU

strGroup = InputBox (« écrire le nom de groupe que vous voulez exporter », « l'exportation de membre de groupe »)

Placer l'objGroup = le GetObject (« LDAP : //CN= » et strGroup et », groupes de distribution d'ou=BD, dc=blackdiamond, dc=local ")

Placer l'objExcel = le CreateObject (« Excel.Application »)
Avec l'objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Évident = rectifier
. Worksheets.Item (1).Name = mi (objGroup.Name, instr (1, objGroup.Name, « =") + 1)
irow=1

Pour chaque strUser dans objGroup.Member
Placer l'objUser = le GetObject (« LDAP : / » et strUser)
. Cellules (iRow, 1) = objUser.CN
irow=irow + 1
Après
. Colonnes (1).entirecolumn.autofit
Extrémité avec

Placer l'objExcel = rien
Placer l'objGroup = rien
Wscript.Quit
class= de

Réponse : Manuscrit de VB à la liste d'exportation de tous les groupes et membres de distribution

le manuscrit fonctionne par l'ANNONCE, obtient tous les groupes de distribution et pour chacun crée la feuille de travail séparée dedans excellent et énumèrent leurs membres.
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 :
Option explicite

Faible adoCommand, adoConnection, strBase, strFilter, strAttributes
Faible objRootDSE, strDNSDomain, strQuery, adoRecordset, strName, groupType, groupName, iRow
Faible objExcel, arrMembers, strMember

'Objets d'AGITATION d'installation.
Placer l'adoCommand = le CreateObject (« ADODB.Command »)
Placer l'adoConnection = le CreateObject (« ADODB.Connection »)
adoConnection.Provider = « ADsDSOObject »
adoConnection.Open « fournisseur actif d'annuaire »
adoCommand.ActiveConnection = adoConnection

'Domaine actif entier d'annuaire de recherche.
Placer l'objRootDSE = le GetObject (« LDAP : //RootDSE »)
strDNSDomain = objRootDSE.Get (« defaultNamingContext »)
strBase = ""

'Filtre sur des groupes de distribution.
strFilter = « (objectCategory=group) »

'Liste délimitée par virgule de valeurs d'attribut à rechercher.
strAttributes = « distinguishedName, membre, groupType, nom »

'Construire la question de syntaxe de LDAP.
strQuery = strBase et « ;  » et strFilter et « ;  » et strAttributes et « ; sous-arbre »
adoCommand.CommandText = strQuery
adoCommand.Properties (« taille de page ») = 100
adoCommand.Properties (« temps mort ») = 30
adoCommand.Properties (la « cachette résulte ») = faux

'Courir la question.
Placer l'adoRecordset = l'adoCommand.Execute

Placer l'objExcel = le CreateObject (« Excel.Application »)
Avec l'objExcel
.SheetsInNewWorkbook = 1
. Workbooks.Add
. Évident = rectifier

'Énumérer le recordset en résultant.
Faire jusqu'à adoRecordset.EOF
'Rechercher les valeurs et l'affichage.
strName = adoRecordset.Fields (« distinguishedName »). Valeur
groupType  = adoRecordset.Fields (« groupType »). Valeur
le groupName  = remplacent (adoRecordset.Fields (« nom »). Valeur, « CN= », "")

'obtenir seulement les groupes de distribution
si groupType=2 ou groupType=4 ou groupType=8 alors
	irow=1
	.ActiveWorkbook.Worksheets.Add
	groupName de .ActiveSheet.Name=
	arrMembers = adoRecordset.Fields (« membre »). Valeur

	Groupe de distribution de Wscript.Echo « :  » et strName
	S'IsNull (arrMembers) puis
		Wscript.Echo « --   »
	Autrement
		Pour chaque strMember dans les arrMembers
			Wscript.Echo « --  » et strMember
			Placer l'objRootDSE = le GetObject (« LDAP : /« &strMember)
			. Cellules (l'iRow, 1) = remplacent (objRootDSE.Name, « CN= », "")
			irow=irow + 1
		Après
	Finir si
Finir si
'Se déplacer au prochain disque dans le recordset.
adoRecordset.MoveNext
Boucle
. Colonnes (1).entirecolumn.autofit
Extrémité avec

'Nettoyer.
adoRecordset.Close
adoConnection.Close
Placer l'objExcel = rien
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us