Установите oObject = GetObject («LDAP: //ad2008rd/cn=Users, DC=soap, DC=com»)
блок oObject.Filter= («группа»)
arrGroups ReDim (1)
arrGroupMembers ReDim (1)
Тусклое oGroup, fileName, groupName, arrGroupMembersCounter, emptyGroupsCounter, groupsCounter
arrGroupMembersCounter=0
emptyGroupsCounter=0
groupsCounter=0
Для каждого oGroup в oObject
тусклые члены
members=0
groupName = oGroup.cn
arrGroups заповедника ReDim (groupsCounter+1)
groupPath = getgrouppath (groupName)
если groupPath = "" после этого
wscript.echo «неспособное для того чтобы найти определенную группу в домене»
еще
установите objGroup = getobject (grouppath)
для каждого objMember в objGroup.Members
members=members+1
если arrGroupMembers (arrGroupMembersCounter) = "" после этого
arrGroupMembers (arrGroupMembersCounter) = objmember.samaccountname
еще
arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) & «,» & objmember.samaccountname
закончитесь если
затем
groupname getprimarygroupmembers
groupName wscript.echo & «: »
если arrGroupMembers (arrGroupMembersCounter) = "" после этого
emptyGroupsCounter=emptyGroupsCounter+1
wscript.echo «ПУСТАЯ ГРУППА…»
еще
=groupName arrGroups (groupsCounter)
groupsCounter=groupsCounter+1
номер wscript.echo «членов: » & члены
arrGroupMembers wscript.echo (arrGroupMembersCounter)
arrGroupMembersCounter=arrGroupMembersCounter+1
arrGroupMembers заповедника ReDim (arrGroupMembersCounter+1)
закончитесь если
"" wscript.echo
закончитесь если
Затем
номер wscript.echo «групп: » & groupsCounter
номер wscript.echo «пустых групп: » & emptyGroupsCounter
findDuplicateGroups ()
wscript.echo «завершило»
findDuplicateGroups функции ()
"" wscript.echo
члены групп находки wscript.echo «двойной: »
для I = 0 к ubound (arrGroups)
для j = 0 к ubound (arrGroups)
если ij<> после этого
если arrGroupMembers (I) = arrGroupMembers (j) после этого
arrGroups wscript.echo (I) & «и» & arrGroups (j) & «имеют такие же члены: »
arrGroupMembers wscript.echo (j)
"" wscript.echo
закончитесь если
закончитесь если
затем
затем
функция конца
getGroupPath функции (byval GroupName)
установите cmd=createobject («ADODB.Command»)
установите cn=createobject («ADODB.Connection»)
установите rs=createobject («ADODB.Recordset»)
cn.open «Provider=ADsDSOObject; »
mandtext cmd.com = «ОТБОРНОЕ adspath от 'LDAP: /» & getnc & _
««ГДЕ objectCategory = «группа» и sAMAccountName =» «& groupname &» '«
cmd.activeconnection = cn
установите rs = cmd.execute
если rs.bof <> true и rs.eoftrue<> после этого
getgrouppath=rs (0)
еще
getgrouppath = ""
закончитесь если
cn.close
закончите функцию
getNC функции
установите objRoot=getobject («LDAP: //RootDSE»)
getNC=objRoot.get («defaultNamingContext»)
функция конца
getPrimaryGroupMembers функции (byval GroupName)
установите cn = createobject («ADODB.Connection»)
установите cmd = createobject («ADODB.Command»)
установите rs = createobject («ADODB.Recordset»)
cn.open «Provider=ADsDSOObject; »
cmd.activeconnection=cn
cmd.properties («размер страницы») =1000
mandtext cmd.com = «ОТБОРНОЕ PrimaryGroupToken ОТ 'LDAP: /» & getnc & _
««ГДЕ sAMAccountName =» «& GroupName &» '«
установите rs = cmd.execute
если rs.eoftrue<> и rs.boftrue<> после этого
PrimaryGroupID = rs (0)
еще
Err.Raise 5000, «getPrimaryGroupMembers», «неспособно для того чтобы найти свойство PrimaryGroupToken»
закончитесь если
mandtext cmd.com = «ОТБОРНОЕ samaccountname, sn, givenName ОТ 'LDAP: /» & getNC & _
««ГДЕ PrimaryGroupID =» «& PrimaryGroupID &» '«
установите rs = cmd.execute
пока rs.eoftrue<> и rs.boftrue<>
если arrGroupMembers (arrGroupMembersCounter) = "" после этого
arrGroupMembers (arrGroupMembersCounter) = rs («samaccountname»)
еще
arrGroupMembers (arrGroupMembersCounter) = arrGroupMembers (arrGroupMembersCounter) & «,» & rs («samaccountname»)
закончитесь если
rs.movenext
wend
cn.close
закончите функцию
|