Las cuentas de usuario de Active Directory tienen el atributo especial «thumbPhoto», un atributo un tanto extraño pero práctico: almacena la imagen del usuario. Estas pueden aparecer como avatares en Outlook, OWA, Word, Excel, Skype Empresarial, Teams, SharePoint e incluso como imágenes de inicio de sesión de escritorio. El problema es que administrar estas fotos no es transparente y, a veces, se sube una foto que simplemente no aparece, o se intenta actualizar o extraer una foto de AD en masa. Esta guía pretende explicar cómo agregar, actualizar o solucionar problemas con las fotos de usuario en AD; algo muy útil, especialmente si se gestionan muchas cuentas o se intenta que los perfiles de usuario tengan una apariencia uniforme.
Normalmente, estas fotos se almacenan como datos binarios bajo el thumbnailPhotoatributo. Puedes configurarlo o actualizarlo mediante PowerShell, el complemento Usuarios y equipos de Active Directory (con una pequeña extensión) o incluso herramientas de terceros.¿El truco? El tamaño, la resolución y el formato de la imagen son importantes. Para un rendimiento y una compatibilidad óptimos, se recomiendan imágenes JPEG de unos 10 KB y 96×96 píxeles. Usar imágenes más grandes puede aumentar el tamaño y el tráfico de la base de datos de AD, ya que, por supuesto, Windows tiene que complicarlo más de lo necesario.
Cómo agregar o actualizar una foto de usuario en AD mediante PowerShell
Método 1: Comandos directos de PowerShell para cargar una foto
¿Por qué es útil esto? PowerShell permite importar imágenes a AD sin tener que modificar la interfaz gráfica ni software de terceros, lo que resulta especialmente útil si se desea automatizar o realizar acciones en masa. Se aplica cuando se tiene un archivo JPEG, PNG o BMP que se desea adjuntar a un usuario de AD y se puede realizar una pequeña modificación en la CLI. Tras convertir la imagen a bytes sin procesar, la foto se mostrará en Outlook/Exchange y otras aplicaciones una vez que AD replique esta información en todo el dominio.
Generalmente, el proceso se ve así: primero, convierte tu imagen en una matriz de bytes:
$photo = [byte[]](Get-Content C:\PS\jkuznetsov_photo.jpg -Encoding byte)
Luego, cárgalo usando:
Set-ADUser jkuznetsov -Replace @{thumbnailPhoto=$photo}
Esto le indica a AD que reemplace la foto actual (o la configure si falta).La versión de una sola línea es útil:
Set-ADUser jkuznetsov -Replace @{thumbnailPhoto=([byte[]](Get-Content "C:\ps\jkuznetsov_photo.jpg" -Encoding byte))}
Un aspecto a tener en cuenta: asegúrese de que la imagen no supere los 100 KB y esté en formato JPEG para una mejor compatibilidad. En algunas configuraciones, después de ejecutar esto, la foto no se muestra inmediatamente; es posible que tenga que actualizar Outlook o esperar a que se replique, lo cual es un poco frustrante. A veces, en ciertos equipos, el atributo puede no actualizarse inmediatamente, pero reiniciar Outlook o tener problemas de caché suelen ser las causas.
Alternativamente, para actualizaciones masivas, puede preparar un CSV como:
AD_username, Photo asmith, C:\PS\asmith.jpg john.doe, C:\PS\john_doe.png jkuznetsov, C:\PS\jkuznetsov.jpg
Luego ejecuta:
Import-Csv C:\PS\import.csv | %{ Set-ADUser -Identity $_. AD_username -Replace @{thumbnailPhoto=([byte[]](Get-Content $_. Photo -Encoding byte))} }
Esto ahorra tiempo, especialmente al administrar muchas cuentas. Recuerda: si quieres ver las imágenes en los contactos de Outlook, quizás tengas que activar la opción «Mostrar fotos del usuario cuando estén disponibles» en las opciones de Outlook, ya que Windows o Outlook suelen ocultar esta función por defecto.
Método 2: Extrae una foto de AD y guárdala como JPG
Si estás intentando extraer una foto de AD, tal vez para usarla en otro lugar o simplemente hacer una copia de seguridad, solo es cuestión de extraer la matriz de bytes y guardarla como un archivo:
$ADuser = Get-ADUser jkuznetsov -Properties thumbnailPhoto $ADuser.thumbnailPhoto | Set-Content c:\PS\jkuznetsov.jpg -Encoding byte
El truco está en que, en algunas máquinas, guardar la matriz de bytes en un archivo no siempre funciona correctamente; a veces es necesario asegurar la codificación correcta o usar herramientas de terceros. Pero esto suele funcionar, sobre todo si necesitas auditar o volver a subir las imágenes posteriormente.
Importar fotos de usuario a Exchange con PowerShell u OWA
Si usa Exchange Server (2013, 2016, 2019) y desea que las fotos aparezcan en Outlook o en la lista global de direcciones, use el comando Set-UserPhoto. Es un poco diferente de AD, ya que se almacena en el propio buzón, lo cual es bastante más fiable para que el usuario final las vea.
Cargará el módulo Exchange y ejecutará:
Add-PSSnapin Microsoft. Exchange. Management. PowerShell. SnapIn Set-UserPhoto -Identity jkuznetsov -PictureData ([System. IO. File]::ReadAllBytes("C:\PS\jkuznetsov_photo.jpg")) -Confirm:$False
O, si deseas eliminar una foto:
Remove-UserPhoto -Identity jkuznetsov
Para versiones anteriores de Exchange, como 2010, utilice:
Import-RecipientDataProperty -Identity jkuznetsov -Picture -FileData ([Byte[]](Get-Content -Path "C:\PS\jkuznetsov.jpg" -Encoding Byte -ReadCount 0))
Nota: Administrar fotos en Exchange Online mediante Microsoft Graph requiere cmdlets más recientes como Set-MgUserPhotoContent. Es un poco engorroso, pero funciona.
Los usuarios también pueden subir o cambiar su foto de perfil directamente en Outlook Web Access haciendo clic en el círculo del perfil, seleccionando Editar información, luego Foto y seleccionando una nueva foto. Esta suele ser la opción más sencilla si prefiere la interfaz gráfica de usuario en lugar de PowerShell.
Cómo agregar una pestaña de fotos a ADUC mediante herramientas de terceros
Si PowerShell o Outlook no te convencen, existen herramientas de terceros, como CodeTwo Active Directory Photos o AD Photo Edit. Estas herramientas añaden una pestaña de interfaz gráfica a ADUC, simplificando considerablemente la gestión de fotos. Aunque no me entusiasma la idea de depender de software externo por razones de seguridad, es más fácil de usar si no te gusta usar scripts.
Para quienes se atrevan, existe una pequeña DLL llamada AdExt.dll que añade la pestaña «Foto» directamente a la consola de ADUC. Solo tienen que registrarla en InstallUtil.exeel directorio de. NET Framework, reiniciar dsa.msc y ¡listo!: aparece la pestaña «Foto».De esta manera, pueden subir imágenes, que se redimensionan o comprimen automáticamente según el atributo seleccionado, como «thumbnail» o «jpegPhoto».
Para anular su registro más tarde, simplemente ejecute:
InstallUtil.exe /u c:\ps\ad\AdExt.dll
Tenga en cuenta que las imágenes se redimensionan, comprimen o limitan (96×96 píxeles, máximo 10 KB), así que no espere retratos de alta resolución. Pero es mejor que hacer clic en ADUC a ciegas y esperar que la imagen se fije.
En general, ya sea que quieras crear un script, usar una interfaz gráfica de usuario o algún complemento de terceros, administrar las fotos de los usuarios en AD es factible, aunque un poco engorroso. Ojalá esto ayude a evitar el interminable proceso de prueba y error con el que me topé.
Resumen
- Utilice PowerShell para convertir imágenes en matrices de bytes y establecer el atributo thumbnailPhoto.
- ¿Actualización masiva? El bucle CSV + PowerShell lo hace más manejable.
- ¿Necesitas fotos en Outlook u OWA? Usa Set-UserPhoto o súbelas directamente desde la interfaz gráfica.
- ¿Necesitas una interfaz gráfica de usuario? Las herramientas de terceros o las extensiones DLL pueden simplificar la administración, pero ten cuidado con los problemas de seguridad.
- Mantenga los tamaños de imagen pequeños y consistentes para evitar la saturación de la base de datos y demoras en la replicación.
Resumen
Administrar las fotos de usuario en Active Directory no es precisamente sencillo, pero con estos trucos, es manejable, especialmente si estás realizando una actualización masiva o solucionando problemas con imágenes faltantes. PowerShell sigue siendo la mejor opción para tareas masivas o con scripts, mientras que las soluciones GUI funcionan bien si no estás usando scripts. Recuerda: las imágenes pequeñas y optimizadas son clave; más grande no es mejor. Esperamos que esto te ahorre tiempo o al menos te oriente en la gestión de fotos.¡Mucha suerte!