Cuestión : Script para quitar a grupos del “miembro” de grupos en una lista de cuentas de usuario

AUTORIZACIÓN, voy a intentar describir mi petición tan claramente como sea posible.  No soy un experto scripting por ninguna medios y no necesito mucha ayuda hacer esto.  He comprobado all over el Internet para encontrar algo que trabajará que puedo construir encendido, pero podía solamente encontrar un pequeño ejemplo que pegue abajo. Aquí está mi situación: el

We tiene un dominio muy grande 2003 del ANUNCIO de Windows con muchos OU cuyo tengo derechas administrativas sobre un solo sitio (llamada él OU=A). Tenemos muchos usuarios el moverse adentro, y, de nuestro OU. Cuando movemos a usuario “fuera” de nuestro OU necesitamos quitar a todos los grupos que existen en el “miembro” de la lengüeta en ADUC asociado a nuestro sitio (OU=A). Mientras que esto es un proceso simple cuando el movimiento está para 1 a 15 usuarios consigue mucho más trabajo intensivo cuando tenemos que mover a 50 a 100 usuarios.  Recibimos a menudo estas peticiones con los usuarios enumerados en una hoja de balance de Excel. Quisiera script este proceso aprovechándose de la hoja de balance.  el

As siempre, allí es uces par de retenes. 1) la cuenta de usuario puede tener un grupo de seguridad de otro OU del sitio, que debe ser no hecho caso porque mi cuenta del admin no podrá quitarlo. 2) necesitamos quitar a los grupos globales, del dominio del Local, del universal, y de la distribución que están en nuestro OU del sitio (OU=A). Cualquier grupo que exista en mi OU del sitio (llamada él OU=A) necesitará ser recorte de código de removed.

The VB que encontré estoy debajo de él no puedo ser la dirección usted iría, así que estoy abierto al curriculum vitae Next

Const del error del suggestions

* VBScript

On ADS_PROPERTY_DELETE = 4
Const objUser del
Set de E_ADS_PROPERTY_NOT_FOUND = de &h8000500D
= el _
(“LDAP de GetObject: //cn=cn=username, ou=A, ou=SITES, dc=OURDC, dc=OURDC, dc=COM”)
arrMemberOf = el
If del
de objUser.GetEx (“memberOf”) Err.Number = E_ADS_PROPERTY_NOT_FOUND esta cuenta de/> Then
For del
WScript.Quit
End If
cada grupo en el objGroup determinado = GetObject (“LDAP del arrMemberOf
: /” y el
objGroup.PutEx ADS_PROPERTY_DELETE, _
“miembro” del grupo), el problema del
objGroup.SetInfo
Next

The del arsenal (“cn=username, ou=A, ou=SITES, dc=OURDC, dc=OURDC, dc=COM”) con este código es que está para un solo usuario y no llamar un archivo de Excel con una lista de usuarios. También, no pienso que manejará los grupos que están en un diverso OU del sitio, pero no soy positivo sobre this.

a largo plazo que quisiera hacer esto la base de una escritura más grande que confirma el nombre de usuario antes de que quite a grupos después mueva las cajas del intercambio 2007 de los usuarios a un grupo del almacenaje del estacionamiento o de la tenencia, que existe ya (puedo completar esos espacios en blanco si puedo conseguir los comandos y el sintaxis apropiados). esperanza del

I expliqué este claramente bastante.  Gracias por adelantado por su ayuda y consejo.  
class= del

Respuesta : Script para quitar a grupos del “miembro” de grupos en una lista de cuentas de usuario

cambié la escritura al registro al archivo en vez de salida a la consola.
el archivo está debajo de 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:
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
Otras soluciones  
 
programming4us programming4us