Placer l'oObject = le GetObject (« LDAP : //ad2008rd/cn=Users, DC=soap, DC=com »)
rangée d'oObject.Filter= (« groupe »)
arrGroups de ReDim (1)
arrGroupMembers de ReDim (1)
Faible oGroup, nom de fichier, groupName, arrGroupMembersCounter, emptyGroupsCounter, groupsCounter
arrGroupMembersCounter=0
emptyGroupsCounter=0
groupsCounter=0
Pour chaque oGroup dans l'oObject
faibles membres
members=0
groupName = oGroup.cn
arrGroups de conserve de ReDim (groupsCounter+1)
groupPath = getgrouppath (groupName)
si groupPath = puis ""
wscript.echo « incapable de trouver le groupe spécifique dans le domaine »
autrement
placer l'objGroup = le getobject (le grouppath)
pour chaque objMember dans objGroup.Members
members=members+1
si arrGroupMembers (arrGroupMembersCounter) = "" alors
arrGroupMembers (arrGroupMembersCounter) = objmember.samaccountname
autrement
arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) et « , » et objmember.samaccountname
finir si
après
groupname de getprimarygroupmembers
groupName de wscript.echo et « : »
si arrGroupMembers (arrGroupMembersCounter) = "" alors
emptyGroupsCounter=emptyGroupsCounter+1
wscript.echo « GROUPE VIDE… »
autrement
=groupName d'arrGroups (groupsCounter)
groupsCounter=groupsCounter+1
nombre de wscript.echo « de membres : » et membres
arrGroupMembers de wscript.echo (arrGroupMembersCounter)
arrGroupMembersCounter=arrGroupMembersCounter+1
arrGroupMembers de conserve de ReDim (arrGroupMembersCounter+1)
finir si
"" de wscript.echo
finir si
Après
nombre de wscript.echo « de groupes : » et groupsCounter
nombre de wscript.echo « de groupes vides : » et emptyGroupsCounter
findDuplicateGroups ()
wscript.echo « a accompli »
findDuplicateGroups de fonction ()
"" de wscript.echo
membres doubles de groupes de trouvaille de wscript.echo « : »
pour I = 0 à l'ubound (arrGroups)
pour j = 0 à l'ubound (arrGroups)
s'ij<> alors
si arrGroupMembers (i) = arrGroupMembers (j) alors
arrGroups de wscript.echo (i) et « et » et arrGroups (j) et « a les mêmes membres : »
arrGroupMembers de wscript.echo (j)
"" de wscript.echo
finir si
finir si
après
après
fonction de fin
getGroupPath de fonction (GroupName byval)
placer le cmd=createobject (« ADODB.Command »)
placer le cn=createobject (« ADODB.Connection »)
placer le rs=createobject (« ADODB.Recordset »)
cn.open « Provider=ADsDSOObject ; »
mandtext de cmd.com = « adspath CHOISI de 'LDAP : / » et getnc et _
« « OÙ objectCategory = « groupe » et sAMAccountName = » « et groupname et » '«
cmd.activeconnection = NC
placer les rs = le cmd.execute
si rs.bof <> rectifient et rs.eoftrue<> alors
getgrouppath=rs (0)
autrement
getgrouppath = ""
finir si
cn.close
finir la fonction
getNC de fonction
placer l'objRoot=getobject (« LDAP : //RootDSE »)
getNC=objRoot.get (« defaultNamingContext »)
fonction de fin
getPrimaryGroupMembers de fonction (GroupName byval)
placer NC = createobject (« ADODB.Connection »)
placer le cmd = le createobject (« ADODB.Command »)
placer les rs = le createobject (« ADODB.Recordset »)
cn.open « Provider=ADsDSOObject ; »
cmd.activeconnection=cn
cmd.properties (« taille de page ») =1000
mandtext de cmd.com = « PrimaryGroupToken CHOISI de 'LDAP : / » et getnc et _
« « OÙ sAMAccountName = » « et GroupName et » '«
placer les rs = le cmd.execute
si rs.eoftrue<> et rs.boftrue<> alors
PrimaryGroupID = rs (0)
autrement
Err.Raise 5000, « getPrimaryGroupMembers », « incapable de trouver la propriété de PrimaryGroupToken »
finir si
mandtext de cmd.com = « samaccountname CHOISI, Sn, givenName de 'LDAP : / » et getNC et _
« « OÙ PrimaryGroupID = » « et PrimaryGroupID et » '«
placer les rs = le cmd.execute
tandis que rs.eoftrue<> et rs.boftrue<>
si arrGroupMembers (arrGroupMembersCounter) = "" alors
arrGroupMembers (arrGroupMembersCounter) = rs (« samaccountname »)
autrement
arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) et « , » et rs (« samaccountname »)
finir si
rs.movenext
wend
cn.close
finir la fonction
|