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:
|
Explicit alternativ
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
dunkel förälder, intRow, användare, användare
Dunkel objDelGroup, objRootLDAP, objGroup, objUser, objOU, objmemberOf
Dunkelt objParent, objWorkbook, objExcel, strValue, strMail, strDescription, strInfo, intgroupType, distinguishedName, strSAMAccountName
dunkel groupParentLdap, strName, strUser, strDNSDomain, strLDAP, strList, rotar
Fastställd objFSO = CreateObject (”Scripting.FileSystemObject”)
Fastställdt objInputFile = objFSO.CreateTextFile (”c:\temp\shdrv.log”, 2)
const ROOT_OU = ”ou=”,
'läs användare listar från överträffar sparar
Fastställd objExcel = CreateObject (”Excel.Application”)
Fastställd objWorkbook = objExcel.Workbooks.Open (”C:\temp\users _list.xls”)
intRow = 1
användare = objExcel.Cells (intRow, 1). Värdera
Gör till användare = "",
om användare = "" därefter
användare = användare
annars
användare = användare & ”,” & användare
avsluta om
intRow = intRow + 1
användare = objExcel.Cells (intRow, 1). Värdera
Kretsa
Fastställd objRootLDAP = GetObject (”LDAP: //RootDSE”)
strDNSDomain = objRootLDAP.Get (”DefaultNamingContext”)
rota = ”LDAP: /” & ROOT_OU & ”,” & strDNSDomain
objInputFile.WriteLine rotar
RecurseOUs GetObject (rota),
Sub RecurseOUs (objOU)
Dunkel objOUObject som strConnString
För varje objOUObject i objOU
Om lämnade, UCase ((objOUObject.Name, 3)) = ”OU=” därefter
strConnString = objOUObject.DistinguishedName
objInputFile.WriteLine som strConnString
Fastställda ObjUser = GetObject (”LDAP: /” & strConnString)
CheckUser som strConnString
RecurseOUs ObjUser
Avsluta om
Därefter
Avsluta suben
Sub CheckUser (strConnString)
På felmeritförteckning därefter
för varje användare i splittring (användare, ”,”)
objInputFile.WriteLine
objInputFile.WriteLine-”användare: ” & användare
strUser = " cn= " & användare & ”,”,
strLDAP = " LDAP: /”& strUser & strConnString
objInputFile.WriteLine-strLDAP
Fastställd objUser = GetObject (strLDAP)
Om Err.Number = 0 därefter
Fastställdt objParent = GetObject (GetObject (objUser.Parent). Förälder)
objParent.GetInfo
föräldern = byter ut (objParent.Name, ”CN=”, "")
objInputFile.WriteLine-”förälderplats: ” & förälder
objmemberOf = objUser.GetEx (”memberOf”)
För varje objGroup i objmemberOf
objInputFile.WriteLine
objInputFile.WriteLine-”grupp LDAP: ” & objGroup
Fastställd objGroup = GetObject (”LDAP: /” & objGroup)
objGroup.GetInfo
strName = objGroup.Get (”namnge”),
strSAMAccountName = objGroup.Get (”sAMAccountName”)
intgroupType = objGroup.Get (”groupType”)
distinguishedName = objGroup.Get (”distinguishedName”)
objInputFile.WriteLine-”distinguishedName: ” & distinguishedName
objInputFile.WriteLine ”namnger: ” & strName
objInputFile.WriteLine-”sAMAccountName: ” & strSAMAccountName
WScript.StdOut.Write-”gruppräckvidd: ”,
Om intGroupType OCH ADS_GROUP_TYPE_LOCAL_GROUP därefter
objInputFile.WriteLine ”områdeslokal”,
ElseIf intGroupType OCH ADS_GROUP_TYPE_GLOBAL_GROUP därefter
”global” objInputFile.WriteLine,
ElseIf intGroupType OCH ADS_GROUP_TYPE_UNIVERSAL_GROUP därefter
objInputFile.WriteLine ”universal”,
Annars
objInputFile.WriteLine ”okända”,
Avsluta om
WScript.StdOut.Write-”grupptyp: ”,
Om intGroupType OCH ADS_GROUP_TYPE_SECURITY_ENABLED därefter
objInputFile.WriteLine ”säkerhetsgrupp”,
Annars
objInputFile.WriteLine ”fördelningsgrupp”,
Avsluta om
objInputFile.WriteLine
objInputFile.WriteLine ”***** som validerar användares ******** för grupp [START]”,
objInputFile.WriteLine ”söka efter” & förälder & ”i” & distinguishedName
om InStr (UCase (distinguishedName), UCase (föräldern)) > 0 därefter
objInputFile.WriteLine ”grupp” & strName & ”är under den samma platsen som användare” & användare
groupParentLdap = ”LDAP: /” & ROOT_OU & ”,” & strDNSDomain
objInputFile.WriteLine ”förbereder sig att ta bort gruppen” & strName & ”från” & groupParentLdap
Fastställd objDelGroup = GetObject (groupParentLdap)
objDelGroup.Delete ”grupp”, ”cn=” & strName
objInputFile.WriteLine ”grupp” & strName & ”togs bort”,
avsluta om
objInputFile.WriteLine ”***** som validerar användares ******** för grupp [AVSLUTA]”,
objInputFile.WriteLine
Därefter
Avsluta OM
Därefter
Avsluta suben
objInputFile.Close
WScript.Quit
|