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:
|
Opción 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
padre dévil, intRow, usuarios, usuario
objDelGroup dévil, objRootLDAP, objGroup, objUser, objOU, objmemberOf
objParent dévil, objWorkbook, objExcel, strValue, strMail, strDescription, strInfo, intgroupType, distinguishedName, strSAMAccountName
groupParentLdap dévil, strName, strUser, strDNSDomain, strLDAP, strList, raíz
Fijar el objFSO = CreateObject (“Scripting.FileSystemObject”)
Fijar objInputFile = objFSO.CreateTextFile (“c:\temp\shdrv.log”, 2)
const ROOT_OU = “ou=”
'leer la lista de usuarios de sobresalen el archivo
Fijar el objExcel = CreateObject (“Excel.Application”)
Fijar el objWorkbook = objExcel.Workbooks.Open (“C:\temp\users _list.xls”)
intRow = 1
usuario = objExcel.Cells (intRow, 1).Value
Hacer hasta usuario = ""
si usuarios = "" después
usuarios = usuario
usuarios = usuarios y “,” y usuario
terminar si
intRow = intRow + 1
usuario = objExcel.Cells (intRow, 1).Value
Lazo
Fijar el objRootLDAP = GetObject (“LDAP: //RootDSE”)
strDNSDomain = objRootLDAP.Get (“DefaultNamingContext”)
raíz = “LDAP: /” y ROOT_OU y “,” y strDNSDomain
raíz de objInputFile.WriteLine
RecurseOUs GetObject (raíz)
RecurseOUs secundario (objOU)
objOUObject dévil, strConnString
Para cada objOUObject en objOU
Si UCase (dejado (objOUObject.Name, 3)) = “OU=” entonces
el strConnString = objOUObject.DistinguishedName
objInputFile.WriteLine strConnString
Fijar ObjUser = GetObject (“LDAP: /” y strConnString)
CheckUser strConnString
RecurseOUs ObjUser
Terminar si
Después
Submarino del extremo
CheckUser secundario (el strConnString)
En curriculum vitae del error después
para cada usuario en la fractura (usuarios, “, ")
objInputFile.WriteLine
usuario de objInputFile.WriteLine “: ” y usuario
strUser = " cn= " y usuario y “,”
strLDAP = " LDAP: /“y strUser y el strConnString
strLDAP de objInputFile.WriteLine
Fijar el objUser = GetObject (el strLDAP)
Si Err.Number = 0 entonces
objParent determinado = GetObject (GetObject (objUser.Parent). Padre)
objParent.GetInfo
el padre = substituye (objParent.Name, “CN=”, el "")
sitio del padre de objInputFile.WriteLine “: ” y padre
objmemberOf = objUser.GetEx (“memberOf”)
Para cada objGroup en objmemberOf
objInputFile.WriteLine
grupo LDAP de objInputFile.WriteLine “: ” y objGroup
Fijar el objGroup = GetObject (“LDAP: /” y objGroup)
objGroup.GetInfo
strName = objGroup.Get (“nombre”)
strSAMAccountName = objGroup.Get (“sAMAccountName”)
intgroupType = objGroup.Get (“groupType”)
distinguishedName = objGroup.Get (“distinguishedName”)
distinguishedName de objInputFile.WriteLine “: ” y distinguishedName
nombre de objInputFile.WriteLine “: ” y strName
sAMAccountName de objInputFile.WriteLine “: ” y strSAMAccountName
Alcance del grupo de WScript.StdOut.Write “: ”
Si intGroupType Y ADS_GROUP_TYPE_LOCAL_GROUP entonces
objInputFile.WriteLine “local del dominio”
intGroupType de ElseIf Y ADS_GROUP_TYPE_GLOBAL_GROUP entonces
objInputFile.WriteLine “global”
intGroupType de ElseIf Y ADS_GROUP_TYPE_UNIVERSAL_GROUP entonces
objInputFile.WriteLine “universal”
objInputFile.WriteLine “desconocido”
Terminar si
Tipo del grupo de WScript.StdOut.Write “: ”
Si intGroupType Y ADS_GROUP_TYPE_SECURITY_ENABLED entonces
objInputFile.WriteLine “grupo de seguridad”
objInputFile.WriteLine “grupo de la distribución”
Terminar si
objInputFile.WriteLine
objInputFile.WriteLine “***** que valida el ******** del grupo de usuario [COMIENZO]”
objInputFile.WriteLine el “buscar” y padre y “en” y distinguishedName
si InStr (UCase (distinguishedName), UCase (padre)) > 0 entonces
objInputFile.WriteLine “grupo” y strName y “está debajo del mismo sitio que usuario” y usuario
groupParentLdap = “LDAP: /” y ROOT_OU y “,” y strDNSDomain
objInputFile.WriteLine “se preparan para quitar a grupo” y strName y “de” y groupParentLdap
Fijar el objDelGroup = GetObject (el groupParentLdap)
objDelGroup.Delete “grupo”, “cn=” y strName
objInputFile.WriteLine “grupo” y strName y “fue quitado”
terminar si
objInputFile.WriteLine “***** que valida el ******** del grupo de usuario [EXTREMO]”
objInputFile.WriteLine
Después
Terminar SI
Después
Submarino del extremo
objInputFile.Close
WScript.Quit
|