Mapear unidades de red según la pertenencia a grupo del usuario

Encontre en el siguiente script en la pagina de Microsoft, realmente esta bueno ya que esta muy bien comentado y es realmente util. Ya que generalmente cuando tenemos que hacer alguna migracion o algo similar tenemos que buscar como hacer esto.

Yo lo tenia desarrollado de otra forma pero esta me gusto mucho ya que como dije antes esta muy comentado el step-by-step. Por otro lado, buscare el que tengo yo que basicamente hace lo mismo pero con KixStar esta probado y funciona correctamente. Gracias a su autor, Fernando Reyes.

Saludos a todos. Roberto Di’Lello.                                                                                                          

Function fl_Es_Miembro(str_Grupo)
‘**********************************************************************************­
‘Autor: Fernando Reyes 
‘Esta función tiene por finalidad encontrar la pertenencia a un determinado grupo
‘(que se
recibe como parámetro) de el usuario que lanza el script. La devolución es
‘booleana: en caso de que el
usuario pertenezca al grupo devuelve True; en caso de
‘ no pertenencia devuelve False. 
‘************************************************************­********************
Dim str_ADs_Path ‘Cadena utilizada para generar la ruta ADSI del usuario 
Dim obj_Usuario  ‘Objeto que se cargará con la información del usuario 
Dim obj_Grupo    ‘Objeto para cada cargar la información de un grupo
Dim obj_Net      ‘Objeto Network del que partimos para obtener el objeto usuario
‘Creamos el objeto Network 
Set obj_Net = CreateObject(“Wscript.Network”)
‘Montamos la ruta ADSI del usuario y creamos el objeto de usuario 
str_ADs_Path = obj_Net.UserDomain & “/” & obj_Net.UserName 
Set obj_User = GetObject(“WinNT://” & str_ADs_Path & “,user”)
‘En este bucle vamos recorriendo uno a uno los grupos a los que pertenece el usuario
For Each obj_Grupo In obj_User.Groups
‘Si el grupo coincide con el recibido como parámetro salimos de la función 
devolviendo True 
If StrComp(str_Grupo, obj_Grupo.Name, vbTextCompare) = 0 Then 
   fl_Es_Miembro =True 
   Exit Function 
End If
Next
‘Si hemos terminado el bucle, es porque no se ha encontrado el grupo recibido
entre aquellos a los que pertenece el usuario, por tanto la devolución de
‘esta función 
será False 
fl_Es_Miembro = False
End Function
‘Ejemplo de cómo se utilizaría la función para montar una unidad “S: “a los
‘usuarios del
grupo “Esclavos de Tercera”
If fl_Es_Miembro(“Esclavos de Tercera”)=True Then
‘creamos el objeto NetWork que utilizaremos para montar la unidad 
  Set obj_Net = CreateObject(“Wscript.Network”)
‘Mapeamos la unidad 
  obj_Net.MapNetworkDrive “s:”, \\servidor\carpeta_de_los_esclavos_de_tercera
EnD If

Roberto Di Lello

Acerca del autor: Roberto Di Lello

Hola, soy Roberto Di Lello trabajo como Consultor Senior en Infraestructura, especializado en Tecnologias Microsoft con mas de 25 años en la industria. He sido galardonado como MS-MVP en Active Directory-Enterprise Mobility por 10 años, y actualmente soy MVP Windows Insider, ademas de poseer otras certificaciones de Microsoft. He trabajado en distintos projectos que involucran Migraciones, Implementaciones, y soporte de Active Directory y Microsoft Exchange, y en los ultimos años me he desempeñado armando equipos de trabajo para diferentes paises y areas de sistemas, he planificado a distintas migraciones a datacenters (ambiente cloud y mixtos). He tenido la oportunidad de participar como miembro del staff de Microsoft en eventos internacionales como ser TechEd NorteAmerica y MS Ignite (NA) al ser Trainer Certificado por Microsoft (MCT).

You May Also Like

10 Comments

  1. hola. felicidades por tu blog.
    He estado leyendo este script en multitud de sitios.
    y tengo esta pregunta: y si el usuario pertenece a varios grupos?
    estoy echo un lio..

  2. ‘En este bucle vamos recorriendo uno a uno los grupos a los que pertenece el usuario
    For Each obj_Grupo In obj_User.Groups
    ‘Si el grupo coincide con el recibido como parámetro salimos de la función
    ‘devolviendo True

  3. Buen script. El único dato que podría añadir es en la penultima línea:

    obj_Net.MapNetworkDrive “s:”, \\servidor\carpeta_de_los_esclavos_de_tercera

    Yo necesite agregar comillas a la ruta compartida para que el script funcione en un windows 2008. Por lo demás es un excelente aporte ya que está bien detallado.

  4. Con gusto Roberto poder aportar a una web de tecnología. Un consulta, tendrás algún tutorial acerca de como configurar NTP en un dominio Windows !!!

  5. Diego, disculpa mi demora en contestar pero estuve medio complicado con los tiempos.

    Te paso un link que puede ayudarte:
    * http://social.technet.microsoft.com/Forums/en-US/winservergen/thread/1698c677-e7dc-4453-8286-1db54b334bea

    Muchas gracias por participar del blog y ayudar a que siga creciendo! Te cuento que hay mucho material en el.

    Te invito a que veas los labs, videos, tutoriales, notas. Si queres buscar un tema o necesitas ayuda, tenes la solapa AYUDA donde explico un poco como hacerlo, sino tambien tenes el buscador de google.

    Espero te sean de utilidad. Saludos!

  6. Buenos dias.

    He visto el script que amablemente has subido a la red, concretamente en la pagina que pongo como asunto, te comento que actualmente tengo la necesidad de mapear unidades de red, según el grupo de pertenencia de los usuarios, por lo tanto este script se ajusta a lo que requiero.

    Solo que tengo un problema, soy un usuario de nivel medio, y no entiendo en su totalidad el script, por ejemplo no se en donde tengo que poner el nombre del grupo que deseo buscar.

    Sera que me puedas orientar en cómo adaptarlo a mis necesidades, solo que me indicaras cuales son las partes que se modifican.

    Agradezco de antemano la atención brindada a mi solicitud.
    Alberto Piña Cedillo

  7. Patricio, disculpa mi demora en contestar pero estuve medio complicado con los tiempos.

    Estuve mirando el script y esta comentado, fijate que el autor puso lo siguiente:
    ‘Ejemplo de cómo se utilizaría la función para montar una unidad “S: “a los
    ‘usuarios del grupo “Esclavos de Tercera”
    If fl_Es_Miembro(“Esclavos de Tercera”)=True Then

    Aprovecho la oportunidad para agradecerte por participar del blog y ayudar a que siga creciendo! Te cuento que hay mucho material en el. Puntualmente estoy desarrollando unos vids sobre migraciones.

    Te invito a que veas los labs, videos, tutoriales, notas. Si querés buscar un tema o necesitás ayuda, tenés la solapa AYUDA donde explico un poco como hacerlo, sino también tenés el buscador de google.

    Espero te sean de utilidad. Saludos!

  8. hola,
    no se si esto me serviria.
    te comento: Se esta migrando un servidor, de almacenaje en el cuel estite de la siguiente manera:

    \\x1\x2\almacenaje

    a un nuevo servidor: \\a1\a2\Datos

    lo que pasa muchos usuarios contiene diferentes carpera unidad en sus equipos Mapeado.
    como puedo hacer esto de atualizar unidades de redes sin pasar 1 por 1 los usuarios.

  9. Marcelo, disculpa mi demora en contestar pero estuve muy complicado con varios temas de trabajo, con el cambio de empresa he estado muy tapado de trabajo, pero voy respondiendo de a poco a medida que puedo y voy a responder todas las consultas.

    Todo depende de como lo estan haciendo ahora. Como mapean tus usuarios las unidades de red? Como soluciones podes hacerlo por login script o por GPO.
    Escribime y vemos la mejor opcion segun tu caso.

    Aprovecho la oportunidad para agradecerte por participar del blog y ayudar a que siga creciendo! Te pido que difundas la direccion del sitio y mi twitter @RaDiansBlog, asi sumamos mas gente. Te invito a que veas los labs, videos, tutoriales, notas. Si querés buscar un tema o necesitas ayuda, tenés la solapa AYUDA donde explico un poco como hacerlo, sino también tenés el buscador de google.

    En 2014 debido a nuevas disposiciones de la ley Argentina debo afrontar distintos gastos para mantener el blog en funcionamiento. Si te parecio util la informacion del blog hace click en el boton “DONATE”

    Seguimos en contacto! Saludos y gracias!

Comments are closed.