Seguramente muchos de vuestros clientes os habrán preguntado por la posibilidad de que cada usuario pueda tener su foto asignada en su cuenta del dominio. Esto es relativamente sencillo sin tener que modificar ningún atributo del usuario en el Directorio Activo ni complicarnos mucho la vida. Desde Windows Vista tenemos la posibilidad de especificar una imagen para cada usuario, y la idea es que podamos tener una carpeta en el servidor con las fotos de los usuarios y que se aplique como imagen de su cuenta
En Windows Vista y 7 la imagen por defecto de cualquier usuario se almacena en "%ALLUSERSPROFILE%\Microsoft\User Account Pictures" y existen dos ficheros:
user.bmp: imagen por defecto para las cuentas de usuario
guest.bmp: imagen por defecto para la cuenta de invitado
Lo que debemos hacer es muy sencillo, sustituir la imagen user.bmp por la del usuario que ha iniciado sesión, para ello utilizaremos un SCRIPT muy sencillo para copiar la imagen del usuario:
*******************************************************************************************************
REM Se lanza una aplicación que comprueba la membresía del usuario, tratando de distinguir si es un usuario o administrador
REM Si el usuario pertenece al grupo GRP ASIRLAB devolverá un 1 en caso contrario un 0
@if ERRORLEVEL 0 goto Administradores
:Usuarios
xcopy \\Asirlab.com\LAB\Fotos\Users\%username%.bmp "%ALLUSERSPROFILE%\Microsoft\User Account Pictures" /y
xcopy \\Asirlab.com\LAB\Fotos\Admins\user.bmp "%ALLUSERSPROFILE%\Microsoft\User Account Pictures" /y
Ahora debemos crear una GPO para que se ejecute el script en el inicio de sesión por parte del usuario en el dominio. Aqui os dejo un script sencillito (cmd o bat como queráis) y lo agregamos a la GPO desde la opción Configuración de usuario – Configuración de Windows – Scripts (inicio de sesión o cierre) – Iniciar sesión
El problema que tendríamos ahora mismo es que el usuario no puede modificar el fichero USER.BMP situado en "%ALLUSERSPROFILE%\Microsoft\User Account Pictures" por lo que tenemos que aplicar los permisos necesarios en todos los equipos del dominio. Para ello crearemos otra GPO aplicada a los equipos del dominio y con la siguiente configuración, para ello vamos a Configuración del equipo – Configuración de Windows – Configuración de Seguridad – Sistema de archivos – Agregar archivo…
seleccionamos el fichero en cuestión "%ALLUSERSPROFILE%\Microsoft\User Account Pictures\user.bmp", como la carpeta está oculta no podemos verla desde el miniexplorador, por lo que podemos pegar la ubicación en recuadro habilitado para ello
y ahora aplicamos los permisos necesarios: MODIFICAR. Yo he creado un grupo específico para aplicar esos permisos: ACL Files User Account Pictures (HRW) y con la opción Reemplazar los permisos existentes en todas las subcarpetas y archivos con perimsos heredables
Ahora nos queda pendiente compartir la carpeta con las fotos y la utilidad que comprobará de que grupo es miembro el usuario. Creamos una carpeta en nuestro servidor y la compartimos con los siguientes permisos:
GRUPO | PERMISO RECURSO COMPARTIDO | PERMISOS NTFS |
---|---|---|
ACL FILES PICTURES USER (HRO) | LEER | LEER |
Agregamos a la carpeta al DFS para seguir con la misma estructura de carpetas y nomenclaturas, y accederíamos a la carpeta mediante la siguiente ruta:
copiaremos las fotos del usuario con el nombre del usuario y extensión BMP y el fichero ISMEMBER.EXE
ismember.exe
sbuitrago.bmp
jperez.bmp
amartinez.bmp
Si queremos que los usuarios solo tengan acceso a su imagen, debemos configurar los permisos de lectura sobre cada imagen con permisos exclusivo al propietario (usuario) y a los administradores. La dimensión de la imagen debe ser 128×128 pixeles y en formato BMP, y con esto hemos terminado la configuración. Ahora cuando un usuario inicie sesión copiará su imagen "%ALLUSERSPROFILE%\Microsoft\User Account Pictures\user.bmp" y sobreescribiendo la anterior imagen sea la suya o no. Esto no ralentizará el inicio de sesión, puesto que el copiado de 50KB (más o menos) no es ningún esfuerzo para la red, servidor y equipo.
Es un proceso "manual" pero igual de útil, para aplicar los permisos sobre la carpeta en donde están las imágenes podéis crear un script para que aplique los permisos cada x minutos. Por ejemplo, podemos querer que la gente del departamento de RRHH copie las fotos en la carpeta de Fotos y luego el script modifique el permiso sobre la imagen. De esta forma alguien podrá copiar la imagen sin depender del administrador.
Aqui os dejo el script y el ismember:
Debéis cambiar el nombre del grupo que utilizareis para comprobar si es un usuario de empresa o administrador, y la ruta de los ficheros compartidos, etc.. pero vamos eso es trivial. Esta configuración funciona en Windows Vista y 7, aun no lo he probado en Windows 8 pero creo que ha cambiado algo la forma de asignar las fotos de los usuarios, porque ahora adapta las imágenes en distintos tamaños, etc…
en cuanto lo vea bien os cuento pero me tiene toda la "pinta" de que se hará de forma "similar". He visto esta directiva para asignar la misma imagen a todos los usuarios, y sigue con mismo conecpto de la imagen en la misma ruta, etc… por lo visto ahora es con el formato JPEG. Será cuestión de probarlo …
Espero que os sea de utilidad!!!