Vraag : Manuscript om Groepen uit het „Lid van“ groepen in een lijst van gebruikersrekeningen te verwijderen

O.K., ga ik proberen om mijn verzoek zo duidelijk mogelijk te beschrijven.  Ik ben geen scripting deskundige op enige manier en heb heel wat hulp nodig om dit te doen.  Ik heb helemaal over Internet gecontroleerd om iets te vinden die dat ik kan voortbouwen op zal werken, maar slechts een klein voorbeeld kon vinden dat ik hieronder zal kleven. Hier is mijn situatie:

We heeft een zeer groot domein van de ADVERTENTIE van Vensters 2003 met vele OU waarvan ik administratieve rechten over één enkele plaats heb (vraag het OU=A). Wij hebben vele gebruikers die zich binnen aan bewegen, en uit, onze OU. Wanneer wij een Gebruiker „uit“ onze OU bewegen die wij hebben moeten om alle groepen verwijderen die bestaan in het „Lid van“ lusje in ADUC verbonden aan onze plaats (OU=A). Terwijl dit een eenvoudig proces is wanneer de beweging voor 1 tot 15 gebruikers is krijgt het veel meer werk intensief wanneer wij 50 tot 100 gebruikers moeten bewegen.  Wij ontvangen vaak deze die verzoeken met de gebruikers in een spreadsheet van Excel worden vermeld. Ik zou aan manuscript van dit proces door de uit spreadsheet voordeel te halen houden.  

As altijd, zijn er een paar vangsten. 1) de gebruikersrekening kan een groep van de Veiligheid van een andere OU van de Plaats hebben, die zou moeten worden genegeerd omdat mijn adminrekening niet het zal kunnen verwijderen. 2) wij moeten groepen van de Globale, Lokale, de Universele, en Distributie van het Domein verwijderen die in onze OU zijn van de Plaats (OU=A). Om het even welke groep die in mijn OU bestaat van de Plaats (vraag het OU=A) zal removed.

The VB codefragment moeten zijn dat ik onder het kan niet de richting heb gevonden is zijn u zou gaan, zodat ben ik open aan suggestions

* VBScript

On Fout hervat Next

Const ADS_PROPERTY_DELETE = 4
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D

Set objUser = GetObject _
(„LDAP: //cn=cn=username, ou=A, ou=SITES, dc=OURDC, dc=OURDC, dc=COM“)
arrMemberOf = objUser.GetEx („memberOf“)

If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
WScript.Echo „Deze rekening geen lid van om het even welke veiligheidsgroepen is. „
WScript.Quit
End If

For Elke Groep in arrMemberOf
plaatste objGroup = GetObject („LDAP: /“ & Groep)
objGroup.PutEx ADS_PROPERTY_DELETE, _
„lid“, is het probleem/>Next

The van de Serie („cn=username, ou=A, ou=SITES, dc=OURDC, dc=OURDC, dc=COM“)
objGroup.SetInfo

op lange termijn ik tot dit de kern van een groter manuscript zou willen maken die de gebruikersnaam bevestigt alvorens het verwijdert groepen dan gebruikersUitwisseling 2007 brievenbussen naar een opvoerende of houdende opslaggroep verplaatst, die reeds bestaat (ik kan die spaties invullen als ik de juiste bevelen en de syntaxis) kan krijgen. />I hoop

Antwoord : Manuscript om Groepen uit het „Lid van“ groepen in een lijst van gebruikersrekeningen te verwijderen

ik veranderde het manuscript om aan dossier in plaats van output aan console te registreren.
het dossier is onder c:\temp\shdrv.log
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:
Expliciete optie

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

schemerige ouder, intRow, gebruikers, gebruiker
Schemerige objDelGroup, objRootLDAP, objGroup, objUser, objOU, objmemberOf
Schemerige objParent, objWorkbook, objExcel, strValue, strMail, strDescription, strInfo, intgroupType, distinguishedName, strSAMAccountName
schemerige groupParentLdap, strName, strUser, strDNSDomain, strLDAP, strList, wortel

Reeks objFSO = CreateObject („Scripting.FileSystemObject“)
Vastgestelde objInputFile = objFSO.CreateTextFile („c:\temp\shdrv.log“, 2)

const ROOT_OU = „ou=“

'lees de gebruikerslijst van dossier uitblinkt
Plaats objExcel = CreateObject („Excel.Application“)
Plaats objWorkbook = objExcel.Workbooks.Open („C:\temp\users _list.xls“)

intRow = 1
gebruiker = objExcel.Cells (intRow, 1). Waarde

Doe tot gebruiker = ""
        als gebruikers = "" toen
                gebruikers = gebruiker
        anders 
                gebruikers = gebruikers & „,“ & gebruiker
        beëindig als
        
    intRow = intRow + 1
        gebruiker = objExcel.Cells (intRow, 1). Waarde
Lijn


Reeks objRootLDAP = GetObject („LDAP: //RootDSE“)
strDNSDomain = objRootLDAP.Get („DefaultNamingContext“)
wortel = „LDAP: /“ & ROOT_OU & „,“ & strDNSDomain
objInputFile.WriteLine wortel

RecurseOUs GetObject (wortel)

Sub RecurseOUs (objOU)
        Schemerige objOUObject, het strConnString
        Voor Elke objOUObject in objOU
                Als Verlaten UCase ((objOUObject.Name, 3)) = „OU=“ toen
                        het strConnString = objOUObject.DistinguishedName
                        het strConnString objInputFile.WriteLine
                        Vastgestelde ObjUser = GetObject („LDAP: /“ & strConnString)

                        Het strConnString van CheckUser
                        RecurseOUs ObjUser
                        Eind als
        Daarna
Sub van het eind

Sub CheckUser (het strConnString)
        Op Fout hervat daarna

        voor elke gebruiker in Spleet (gebruikers, „,“)
                objInputFile.WriteLine
                objInputFile.WriteLine „Gebruiker: “ & gebruiker
                
                strUser = " cn= " & gebruiker & „,“
                strLDAP = " LDAP: /„& strUser & strConnString
                objInputFile.WriteLine strLDAP
                Reeks objUser = GetObject (strLDAP)
                Als Err.Number = 0 toen
      
                        Vastgestelde objParent = GetObject (GetObject (objUser.Parent). Ouder)
                        objParent.GetInfo
                        
                        de ouder = vervangt (objParent.Name, „CN=“, "")
                        objInputFile.WriteLine de „Plaats van de Ouder: “ & ouder
                        
                        objmemberOf  = objUser.GetEx („memberOf“)
                        Voor Elke objGroup in objmemberOf
                                objInputFile.WriteLine
                                objInputFile.WriteLine „Groep LDAP: “ & objGroup 
                                
                                Reeks objGroup = GetObject („LDAP: /“ & objGroup)
                                objGroup.GetInfo

                                strName = objGroup.Get („naam“)
                                strSAMAccountName = objGroup.Get („sAMAccountName“)
                                intgroupType = objGroup.Get („groupType“)
                                distinguishedName = objGroup.Get („distinguishedName“)
                                 
                                objInputFile.WriteLine „distinguishedName: “ & distinguishedName
                                objInputFile.WriteLine „naam: “ & strName
                                objInputFile.WriteLine „sAMAccountName: “ & strSAMAccountName
                                 
                                WScript.StdOut.Write het „werkingsgebied van de Groep: “
                                Als intGroupType EN ADS_GROUP_TYPE_LOCAL_GROUP toen
                                  objInputFile.WriteLine „lokaal Domein“
                                ElseIf intGroupType EN ADS_GROUP_TYPE_GLOBAL_GROUP toen
                                  objInputFile.WriteLine „Globaal“
                                ElseIf intGroupType EN ADS_GROUP_TYPE_UNIVERSAL_GROUP toen
                                  objInputFile.WriteLine „Algemeen begrip“
                                Anders
                                  objInputFile.WriteLine „Onbekend“
                                Eind als
                                 
                                WScript.StdOut.Write het „type van Groep: “
                                Als intGroupType EN ADS_GROUP_TYPE_SECURITY_ENABLED toen
                                  objInputFile.WriteLine de „groep van de Veiligheid“
                                Anders
                                  objInputFile.WriteLine de „groep van de Distributie“
                                Eind als
                                 
                                objInputFile.WriteLine
                                objInputFile.WriteLine „***** die gebruikersgroep [BEGIN] bevestigen ********“
                                objInputFile.WriteLine „het Zoeken“ & ouder & „in“ & distinguishedName
                                
                                als InStr (UCase (distinguishedName), UCase (ouder)) > 0 toen
                                        objInputFile.WriteLine de „Groep“ & strName & „is onder de zelfde plaats zoals gebruiker“ & gebruiker
                                        groupParentLdap = „LDAP: /“ & ROOT_OU & „,“ & strDNSDomain
                                        objInputFile.WriteLine „tref voorbereidingen om groep“ & strName & „  van“ te verwijderen & groupParentLdap
                                        Plaats objDelGroup = GetObject (groupParentLdap)
                                        objDelGroup.Delete „groep“, „cn=“ & strName                     
                                        objInputFile.WriteLine de „groep werd“ & strName & „verwijderd“
                                beëindig als 
                                
                                objInputFile.WriteLine „***** die gebruikersgroep [EIND] bevestigen ********“
                                objInputFile.WriteLine
                        Daarna
                Eind ALS
        Daarna
Sub van het eind

objInputFile.Close
WScript.Quit
Andere oplossingen  
 
programming4us programming4us