none
Ayuda con Script para poder cambiar la descripción de los grupos. RRS feed

  • Pregunta

  • Buen día,

    Tengo que cambiar la descripción de los grupos en Active directory. El problema está que no entiendo muy bien la técnica y además. no se como insertar para que lea que grupo debe modificar y que descripción se aplica.

     

    Digamos que:

    Const ADS_PROPERTY_UPDATE = 2

    Set objGroup = GetObject _
       ("LDAP://cn=GrupoPrueba,ou=R&D,dc=NA,dc=fabrikam,dc=com") 

    objGroup.PutEx ADS_PROPERTY_UPDATE, _
        "description", Array("GrupoPrueba")
    objGroup.SetInfo

    Necesito que desde el archivo ya sea (cvs, txt o lo que fuera) me modifique

       ("LDAP://cn=GrupoPrueba2,ou=R&D,dc=NA,dc=fabrikam,dc=com") 

        "description", Array("GrupoPrueba2")

    Desde ya, muchas gracias por su atención.

    Saludos Cordiales.

     

    lunes, 1 de agosto de 2011 15:28

Respuestas

  • Tendrías que tener en un CSV los nombres distinguidos de los grupos a cambiar y la descripción a establecer. Algo así:

     

    Option Explicit
    
    Const ADS_PROPERTY_UPDATE = 2 
    
    Dim obj_Grupo
    Dim obj_FS
    Dim obj_TS
    Dim str_Linea
    Dim str_DN
    Dim arr_Descripcion
    
    'Creamos un objeto FileSystem
    Set obj_FS = CreateObject("Scripting.FileSystemObject")
    
    'Abrimos el fichero de valores separados por tabuladores
    Set obj_TS = obj_FS.OpenTextFile("d:\listados\grupos-descripciones.tab")
    
    'Recorremos el fichero línea a línea
    Do While Not obj_FS.AtEndOfStream
    
     'Leemos la línea actual
     str_Linea = obj_TS.ReadLine
     
     'Obtenemos el nombre distinguido del grupo
     str_DN = Replace(Split(str_Linea,vbTab))(0),"/","\/")
     
     'Obtenemos la descripción
     arr_Descripcion = Array(Split(str_Linea,vbTab)(1))
     
     'Obtenemos el objeto iADsGroup
     Set obj_Grupo = GetObject("LDAP://" & str_DN)
     
     'Cambiamos su descripción
     obj_Grupo.PutEx ADS_PROPERTY_UPDATE, _
      "description", arr_Descripcion
    
     'Validamos el cambio
     obj_Grupo.SetInfo()
    
    Wend
    
    'Cerramos el fichero de valores separados por tabuladores
    obj_TS.Close
    
    'Limpieza de KKs :o))
    Set obj_Grupo = Nothing
    Set obj_TS = Nothing
    Set obj_FS = Nothing


    El fichero con los grupos y sus descripciones, en este ejemplo, es "d:\listados\grupos-descripciones.tab" y su contenido tiene un grupo por línea, con el nombre distinguido del grupo en primer lugar, un tabulador y la descripción a establecer. siguiendo tu ejemplo:

    cn=GrupoPrueba2,ou=R&D,dc=NA,dc=fabrikam,dc=com GrupoPrueba2
    cn=GrupoPrueba3,ou=R&D,dc=NA,dc=fabrikam,dc=com GrupoPrueba3

     


    Un saludo

    Fernando Reyes [MS MVP]
    MCSA 2000/2003
    MCSE 2000/2003
    MCITP EnterpriseAdministrator
    Web: http://freyes.svetlian.com
    Blog: http://urpiano.wordpress.com
    RSS: http://urpiano.wordpress.com/feed/
    freyes.champú@champú.mvps.org
    (Aclárate la cabeza si quieres escribirme)


    • Marcado como respuesta Ismael Borche miércoles, 24 de agosto de 2011 18:26
    jueves, 4 de agosto de 2011 11:16
    Moderador