Ver Mensaje Individual
  #9 (permalink)  
Antiguo 15/05/2010, 03:22
ponpeyon
 
Fecha de Ingreso: marzo-2007
Mensajes: 16
Antigüedad: 17 años, 1 mes
Puntos: 1
Respuesta: Crear automatiacamente directorios de salva para usuarios de AD

Hola johnp,

Para crear tus 400 carpetas y definir permisos para el usuario en particular puedes hacer uso de 2 herramientas en conjunto:

1.- Una propiedad de los objetos User de AD llamada PprofilePath.
2.- Un script que te paso más abajo.

Antes que nada hay que poner los requisitos previos para que funcione:

1.- Tienes que conectar el HDD externo al servidor que lo va a compartir.
2.- Crea un recuso compartido en el HDD externo, Ejemplo: \\FileServer\Profiles\
3.- Establece los permisos necesarios para compartir y de seguridad para que todos los Domain Users puedan escribir en el.

Listo copiate el siguiente codigo en notepad y guardalo con extension .vbs

Código:
On Error Resume Next

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000

objCommand.CommandText = "<LDAP://dc=dominio,dc=com>;(&(objectCategory=Person)(objectClass=user));distinguishedName;Subtree"  

Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

Do Until objRecordSet.EOF
    Datos = objRecordSet.Fields("distinguishedName").Value
    GrabaDatos(Datos)
    objRecordSet.MoveNext
Loop


Function GrabaDatos(SourceData)

Set objUser = GetObject ("LDAP://" & SourceData)
objUser.Put "profilePath", "\\FileServer\Profiles\%username%"
objUser.SetInfo

End Function
Te explico un poco de su funcionamiento, lo que hace el script es recorrer OU x OU de tu dominio buscando objetos User, cuando encuentra un usuario extrae el valor de su propiedad distinguishedName y se lo pasa a otra función que escribe en la propiedad profilePath la ruta del recuso compartido + la variable %username%.

Esto hará que cuando un usuario inicie sesión creará en tu HDD compartido una carpeta con nombre de usuario.

Supongamos que tienes un usuario con los siguientes datos:

cn: Andres Flores
dn: cn=Andres Flores,OU=Netadmin,DC=dominio,DC=com
%username% = sAMAccountName: andres.flores

Cuando el usuario Andres Flores inicie sesion en su PC automaticamente creará una carpeta en el recurso compartido con su nombre de usuario y con permisos exclusivos para él: \\FileServer\Profiles\andres.flores

Como podrás notar en el script te marque un par de variables en rojo, estas variables las tienes que modificar con respecto al nombre de tu dominio y la ruta del recurso compartido:

Supongamos que tu dominio se llama sony.com.es entonces debes de modificar dc=dominio,dc=com por dc=sony,dc=com,dc=es

Supongamos que el servidor que tiene conectado el HDD se llama Storage01 y el recurso compartido se llama UserFiles entonces debes de modificar \\FileServer\Profiles\%username% por \\Storage01\UserFiles\%username%

Espero haber sido claro.

Por otra parte comentas:

Cita:
2. ?podría de algún modo por políticas o algo similar hacer que se salven automaticamente carpetas definidas de cada usuario en el directorio creado en la pregunta anterior?
Desgraciadamente es posible por políticas de dominio hacer esto, pero te puedo recomendar 2 opciones de bajo o nulo costo pero ambas igual de laboriosas de implementar:

1.- Windows XP Pro tiene una utileria en accesorios que se llamada Copia de seguridad preinstalada y si es Home puedes instalarla desde el CD, puedes programas respaldos del equipo completo o carpetas independientes. Lo malo como te imaginaras es que debes de programar los respaldo en las 300 PC's

2.- Mapea el recurso compartido en una unidad de red a tus usuarios referenciandola con su carpeta compartida. Lo malo es hacer consiencia a los usuarios para que aprendan que todo lo importante deben de trabajarlo desde esa ubicacion y que aprendan a no guardar como "IMPORTANTE" sus MP3's y porno.

La otra como te comentan es que compres o busques algun software que te programe esos respaldos y que de manera centralizada puedas manejarlos.

Espero haber sido de ayuda.

PD. Este script lo acabo de hacer en mi casa y no pude probarlo, te recomiendo si te es posible que lo ejecutes en un entorno de pruba, pero no te asustes, solo hay de 2 o funciona correctamente o te falla por que me equivoque en alguna linea de codigo y no se ejecutará, si es así dime y lo depuro.

SUERTE.