Questione : Devo interrogare ogni gruppo in un OU nel dominio della radice ed ottenere i nomi di gruppo che ha utenti identici esatti.

Ciao, necessità del

I di interrogare ogni gruppo in un OU nel dominio della radice ed ottenere i nomi di gruppo che ha as

Group1 dell'uscita di users.
get ha 10 membri e sono identical
Group2 hanno 10 membri e sono identical

Need per controllare il membro l'identificazione del email che potrebbe essere clienti o contatti di utente nel groups

Regards
Sharath
class= del

Risposta : Devo interrogare ogni gruppo in un OU nel dominio della radice ed ottenere i nomi di gruppo che ha utenti identici esatti.

controllare questo codice:
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:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
Regolare il oObject = GetObject (“LDAP: //ad2008rd/cn=Users, DC=soap, DC=com„)
allineamento di oObject.Filter= (“gruppo„)

arrGroups di ReDim (1)
arrGroupMembers di ReDim (1)
oGroup fioco, nome di schedario, groupName, arrGroupMembersCounter, emptyGroupsCounter, groupsCounter

arrGroupMembersCounter=0
emptyGroupsCounter=0
groupsCounter=0

Per ogni oGroup nel oObject
	membri fiochi
	members=0
	
	groupName = oGroup.cn
	
	arrGroups della conserva di ReDim (groupsCounter+1)

	groupPath = getgrouppath (groupName)

	se groupPath = "" allora
		wscript.echo “incapace di trovare il gruppo specificato nel dominio„
	altrimenti
		regolare il objGroup = il getobject (grouppath)
	
		per ogni objMember in objGroup.Members
			members=members+1
			se arrGroupMembers (arrGroupMembersCounter) = "" allora
				arrGroupMembers (arrGroupMembersCounter) = objmember.samaccountname
			altrimenti
				arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) & “,„ & objmember.samaccountname
			concluder se 			
		dopo

		groupname di getprimarygroupmembers

		groupName di wscript.echo & “: „ 
		se arrGroupMembers (arrGroupMembersCounter) = "" allora
			emptyGroupsCounter=emptyGroupsCounter+1
			wscript.echo “GRUPPO VUOTO…„
		altrimenti
			=groupName dei arrGroups (groupsCounter)
			groupsCounter=groupsCounter+1

			numero di wscript.echo “dei membri: „ & membri
			arrGroupMembers di wscript.echo (arrGroupMembersCounter)
			arrGroupMembersCounter=arrGroupMembersCounter+1
			arrGroupMembers della conserva di ReDim (arrGroupMembersCounter+1)
		concluder se
				
		"" di wscript.echo
		concluder se
Dopo

numero di wscript.echo “dei gruppi: „ & groupsCounter
numero di wscript.echo “dei gruppi vuoti: „ & emptyGroupsCounter

findDuplicateGroups ()

wscript.echo “ha completato„
		
findDuplicateGroups di funzione ()
	"" di wscript.echo
	membri duplicati dei gruppi del ritrovamento di wscript.echo “: „

	per i = 0 a ubound (arrGroups)
		per J = 0 a ubound (arrGroups)
			se ij<> allora
				se arrGroupMembers (i) = arrGroupMembers (j) allora
					arrGroups di wscript.echo (i) & “e„ & arrGroups (j) & “ha gli stessi membri: „
					arrGroupMembers di wscript.echo (j) 
					"" di wscript.echo
				concluder se
			concluder se
		dopo
	dopo 
funzione di conclusione

getGroupPath di funzione (GroupName byval)
	regolare il cmd=createobject (“ADODB.Command„)
	regolare il cn=createobject (“ADODB.Connection„)
	regolare il rs=createobject (“ADODB.Recordset„)
	
	cn.open “Provider=ADsDSOObject; „
	
	mandtext di cmd.com = “adspath PRESCELTO 'da LDAP: /„ & getnc & _
			  ““DOVE objectCategory = “gruppo„ e sAMAccountName =„ “& groupname &„ '“
	cmd.activeconnection = cn
	
	regolare i rs = cmd.execute
	
	se rs.bof <> allora allineano e<> rs.eoftrue
		getgrouppath=rs (0)
	altrimenti
		getgrouppath = ""
	concluder se
	cn.close

concludere la funzione

getNC di funzione
	regolare il objRoot=getobject (“LDAP: //RootDSE„)
	getNC=objRoot.get (“defaultNamingContext„)
funzione di conclusione

getPrimaryGroupMembers di funzione (GroupName byval)
	regolar cn = createobject (“ADODB.Connection„)
	regolare il cmd = il createobject (“ADODB.Command„)
	regolare i rs = il createobject (“ADODB.Recordset„)
	
	cn.open “Provider=ADsDSOObject; „
	cmd.activeconnection=cn

	cmd.properties (“formato di pagina„) =1000
	mandtext di cmd.com = “PrimaryGroupToken PRESCELTO 'DA LDAP: /„ & getnc & _
			  ““DOVE sAMAccountName =„ “& GroupName &„ '“
	regolare i rs = cmd.execute

	se rs.eoftrue<> e rs.boftrue<> allora
		PrimaryGroupID = rs (0)
	altrimenti
		Err.Raise 5000, “getPrimaryGroupMembers„, “incapace di trovare la proprietà di PrimaryGroupToken„
	concluder se

	mandtext di cmd.com = “samaccountname PRESCELTO, Sn, givenName 'DA LDAP: /„ & getNC & _
			  ““DOVE PrimaryGroupID =„ “& PrimaryGroupID &„ '“

	regolare i rs = cmd.execute

	mentre rs.eoftrue<> e rs.boftrue<>
		se arrGroupMembers (arrGroupMembersCounter) = "" allora
			arrGroupMembers (arrGroupMembersCounter) = rs (“samaccountname„)
		altrimenti
			arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) & “,„ & rs (“samaccountname„)
		concluder se 	
			
		rs.movenext
	wend
	cn.close
	
concludere la funzione
Altre soluzioni  
 
programming4us programming4us