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:
|
Opção explícita
Const ADS_PROPERTY_DELETE = 4
Const ADS_GROUP_TYPE_GLOBAL_GROUP = &h2
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_UNIVERSAL_GROUP = &h8
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
pai não ofuscante, intRow, usuários, usuário
objDelGroup não ofuscante, objRootLDAP, objGroup, objUser, objOU, objmemberOf
objParent não ofuscante, objWorkbook, objExcel, strValue, strMail, strDescription, strInfo, intgroupType, distinguishedName, strSAMAccountName
groupParentLdap não ofuscante, strName, strUser, strDNSDomain, strLDAP, strList, raiz
Ajustar o objFSO = o CreateObject (“Scripting.FileSystemObject”)
Ajustar objInputFile = objFSO.CreateTextFile (“c:\temp\shdrv.log”, 2)
const ROOT_OU = “ou=”
'ler a lista de usuários de primam a lima
Ajustar o objExcel = o CreateObject (“Excel.Application”)
Ajustar o objWorkbook = o objExcel.Workbooks.Open (“C:\temp\users _list.xls”)
intRow = 1
usuário = objExcel.Cells (intRow, 1). Valor
Fazer até o usuário = o ""
se usuários = "" então
usuários = usuário
mais
usuários = usuários & “,” & usuário
terminar se
intRow = intRow + 1
usuário = objExcel.Cells (intRow, 1). Valor
Laço
Ajustar o objRootLDAP = o GetObject (“LDAP: //RootDSE”)
strDNSDomain = objRootLDAP.Get (“DefaultNamingContext”)
raiz = “LDAP: /” & ROOT_OU & “,” & strDNSDomain
raiz de objInputFile.WriteLine
RecurseOUs GetObject (raiz)
RecurseOUs secundário (objOU)
objOUObject não ofuscante, strConnString
Para cada objOUObject no objOU
Se UCase (deixado (objOUObject.Name, 3)) = “OU=” então
strConnString = objOUObject.DistinguishedName
objInputFile.WriteLine que strConnString
Ajustar ObjUser = GetObject (“LDAP: /” & strConnString)
CheckUser que strConnString
RecurseOUs ObjUser
Terminar se
Em seguida
Submarino da extremidade
CheckUser secundário (strConnString)
No resumo do erro em seguida
para cada usuário na separação (usuários, “, ")
objInputFile.WriteLine
usuário de objInputFile.WriteLine “: ” & usuário
strUser = " cn= " & usuário & “,”
strLDAP = " LDAP: /“& strUser & strConnString
strLDAP de objInputFile.WriteLine
Ajustar o objUser = o GetObject (o strLDAP)
Se Err.Number = 0 então
objParent ajustado = GetObject (GetObject (objUser.Parent). Pai)
objParent.GetInfo
o pai = substitui (objParent.Name, “CN=”, o "")
local pai de objInputFile.WriteLine do “: ” & pai
objmemberOf = objUser.GetEx (“memberOf”)
Para cada objGroup no objmemberOf
objInputFile.WriteLine
grupo LDAP de objInputFile.WriteLine “: ” & objGroup
Ajustar o objGroup = o GetObject (“LDAP: /” & objGroup)
objGroup.GetInfo
strName = objGroup.Get (“nome”)
strSAMAccountName = objGroup.Get (“sAMAccountName”)
intgroupType = objGroup.Get (“groupType”)
distinguishedName = objGroup.Get (“distinguishedName”)
distinguishedName de objInputFile.WriteLine “: ” & distinguishedName
nome de objInputFile.WriteLine “: ” & strName
sAMAccountName de objInputFile.WriteLine “: ” & strSAMAccountName
Espaço grupo de WScript.StdOut.Write do “: ”
Se intGroupType E ADS_GROUP_TYPE_LOCAL_GROUP então
objInputFile.WriteLine do “local domínio”
intGroupType de ElseIf E ADS_GROUP_TYPE_GLOBAL_GROUP então
objInputFile.WriteLine “global”
intGroupType de ElseIf E ADS_GROUP_TYPE_UNIVERSAL_GROUP então
objInputFile.WriteLine “universal”
Mais
objInputFile.WriteLine “desconhecido”
Terminar se
Tipo grupo de WScript.StdOut.Write do “: ”
Se intGroupType E ADS_GROUP_TYPE_SECURITY_ENABLED então
objInputFile.WriteLine de “grupo segurança”
Mais
objInputFile.WriteLine da “grupo distribuição”
Terminar se
objInputFile.WriteLine
objInputFile.WriteLine “***** que valida o ******** do grupo de usuário [COMEÇO]”
objInputFile.WriteLine “procura” & pai & “em” & distinguishedName
se InStr (UCase (distinguishedName), UCase (pai)) > 0 então
objInputFile.WriteLine “grupo” & strName & “está sob o mesmo local que o usuário” & o usuário
groupParentLdap = “LDAP: /” & ROOT_OU & “,” & strDNSDomain
objInputFile.WriteLine “preparam-se para remover o grupo” & o strName & “de” & o groupParentLdap
Ajustar o objDelGroup = o GetObject (o groupParentLdap)
objDelGroup.Delete “grupo”, “cn=” & strName
objInputFile.WriteLine “grupo” & strName & “foi removido”
terminar se
objInputFile.WriteLine “***** que valida o ******** do grupo de usuário [EXTREMIDADE]”
objInputFile.WriteLine
Em seguida
Terminar SE
Em seguida
Submarino da extremidade
objInputFile.Close
WScript.Quit
|