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
|