Ajustar o oObject = o GetObject (“LDAP: //ad2008rd/cn=Users, DC=soap, DC=com”)
disposição de oObject.Filter= (“grupo”)
arrGroups de ReDim (1)
arrGroupMembers de ReDim (1)
oGroup não ofuscante, nome de arquivo, groupName, arrGroupMembersCounter, emptyGroupsCounter, groupsCounter
arrGroupMembersCounter=0
emptyGroupsCounter=0
groupsCounter=0
Para cada oGroup no oObject
membros não ofuscantes
members=0
groupName = oGroup.cn
arrGroups da conserva de ReDim (groupsCounter+1)
groupPath = getgrouppath (groupName)
se groupPath = "" então
wscript.echo “incapaz de encontrar o grupo especific no domínio”
mais
ajustar o objGroup = o getobject (o grouppath)
para cada objMember em objGroup.Members
members=members+1
se arrGroupMembers (arrGroupMembersCounter) = "" então
arrGroupMembers (arrGroupMembersCounter) = objmember.samaccountname
mais
arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) & “,” & objmember.samaccountname
terminar se
em seguida
groupname dos getprimarygroupmembers
groupName de wscript.echo & “: ”
se arrGroupMembers (arrGroupMembersCounter) = "" então
emptyGroupsCounter=emptyGroupsCounter+1
wscript.echo “GRUPO VAZIO…”
mais
=groupName dos arrGroups (groupsCounter)
groupsCounter=groupsCounter+1
número de wscript.echo “de membros: ” & membros
arrGroupMembers de wscript.echo (arrGroupMembersCounter)
arrGroupMembersCounter=arrGroupMembersCounter+1
arrGroupMembers da conserva de ReDim (arrGroupMembersCounter+1)
terminar se
"" de wscript.echo
terminar se
Em seguida
número de wscript.echo “de grupos: ” & groupsCounter
número de wscript.echo “de grupos vazios: ” & emptyGroupsCounter
findDuplicateGroups ()
wscript.echo “terminou”
findDuplicateGroups da função ()
"" de wscript.echo
membros duplicados dos grupos achado de wscript.echo do “: ”
para i = 0 ao ubound (arrGroups)
para j = 0 ao ubound (arrGroups)
se ij<> então
se arrGroupMembers (i) = arrGroupMembers (j) então
arrGroups de wscript.echo (i) & “e” & arrGroups (j) & “tem os mesmos membros: ”
arrGroupMembers de wscript.echo (j)
"" de wscript.echo
terminar se
terminar se
em seguida
em seguida
função do fim
getGroupPath da função (GroupName byval)
ajustar o cmd=createobject (“ADODB.Command”)
ajustar o cn=createobject (“ADODB.Connection”)
ajustar o rs=createobject (“ADODB.Recordset”)
cn.open “Provider=ADsDSOObject; ”
mandtext de cmd.com = “adspath SELETO 'de LDAP: /” & getnc & _
““ONDE objectCategory = “grupo” e sAMAccountName =” “& groupname &” '“
cmd.activeconnection = NC
ajustar rs = cmd.execute
se rs.bof <> retificam e rs.eoftrue<> então
getgrouppath=rs (0)
mais
getgrouppath = ""
terminar se
cn.close
terminar a função
getNC da função
ajustar o objRoot=getobject (“LDAP: //RootDSE”)
getNC=objRoot.get (“defaultNamingContext”)
função do fim
getPrimaryGroupMembers da função (GroupName byval)
ajustar NC = createobject (“ADODB.Connection”)
ajustar o cmd = o createobject (“ADODB.Command”)
ajustar os rs = o createobject (“ADODB.Recordset”)
cn.open “Provider=ADsDSOObject; ”
cmd.activeconnection=cn
cmd.properties (de “tamanho página”) =1000
mandtext de cmd.com = “PrimaryGroupToken SELETO 'DE LDAP: /” & getnc & _
““ONDE sAMAccountName =” “& GroupName &” '“
ajustar rs = cmd.execute
se rs.eoftrue<> e rs.boftrue<> então
PrimaryGroupID = rs (0)
mais
Err.Raise 5000, “getPrimaryGroupMembers”, “incapaz de encontrar a propriedade de PrimaryGroupToken”
terminar se
mandtext de cmd.com = “samaccountname SELETO, sn, givenName 'DE LDAP: /” & getNC & _
““ONDE PrimaryGroupID =” “& PrimaryGroupID &” '“
ajustar rs = cmd.execute
quando rs.eoftrue<> e rs.boftrue<>
se arrGroupMembers (arrGroupMembersCounter) = "" então
arrGroupMembers (arrGroupMembersCounter) = rs (“samaccountname”)
mais
arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) & “,” & rs (“samaccountname”)
terminar se
rs.movenext
wend
cn.close
terminar a função
|