Bugs Incluidos

Automatizando la sincronización de fondos en windows con robocopy

¿Qué se necesita?

Necesitamos una forma sencilla de sincronizar los fondos de escritorio de todas las computadoras del aula para que los maestros puedan dar avisos fácilmente a todos sus alumnos y comunidad.

Al ser 37 computadoras, esto es una tarea muy tediosa de hacer manualmente. Los fondos se actualizan cada vez que hay un nuevo taller para promover las actividades que realizamos. Se requiere que sea una solución fácil de usar, para que cualquier profesor pueda actualizar sus carteles fácilmente.

Primera propuesta

El primer intento fue colocar la carpeta en una computadora que esté siempre encendida y usar una carpeta remota al elegir el fondo.

Este método tiene un par de problemas:

Fondo de pantalla que no cargó correctamente

Segunda propuesta: sincronizando carpetas con robocopy

Ya que la primera solución dependía de que estuviera todo el tiempo prendida la computadora, constantemente se veían dañados los fondos, ya que no los podía cargar. Para resolver estos problemas, cree un script para sincronizar las computadoras únicamente en el arranque. Teniendo su propia carpeta local, evitando así el cuello de botella de 20 conexiones simultáneas.

Esta otra solución consiste en que, al encender la computadora, automáticamente se sincronizará la carpeta donde están las imágenes a una carpeta local. Así solo hace falta que esté encendida para la sincronización, pero después se usa de manera local. Y si está apagada, sigue teniendo las imágenes guardadas en la computadora.

Cómo ejecutar los scripts

Instalación

En este momento se hizo de manera manual; se coloca la carpeta con los scripts en una USB, y se ejecuta solamente run.bat, el cual va a configurar completamente todo lo necesario. Termina intentando hacer la primera sincronización.

Configurando fondo de pantalla

Una vez completado el paso anterior, ve a: Configuración > Personalización > Fondo de pantalla

Y selecciona la carpeta ´C:\fondos´ como la fuente.

Usos posteriores

En ocasiones posteriores no hace falta hacer nada. El script se ejecutará automáticamente en cada arranque. En caso de que algún error ocurra, se quedará registrado en el archivo ´sincronizacion.log´

Con esto logramos fácilmente tener todos los fondos sincronizados.

El script completo lo puedes encontrar en este repositorio

Limitaciones conocidas

Al encender todas las computadoras al mismo tiempo, las últimas son bloqueadas. Este problema lo que causa es que los fondos no se sincronicen, quedándose los anteriores. Esto aún no es lo ideal, pero el usuario no nota ningún fallo aparente.

Esperando 10 segundos... Reintentando...
2026/06/09 11:46:40 ERROR 71 (0x00000047) Obteniendo acceso al directorio de origen \\095-NT-AZC-01\fondos\
No se pueden realizar m s conexiones a este equipo remoto en este momento, ya que hay m s de las que puede aceptar.

Esto ocurre porque Windows limita la cantidad de usuarios simultáneos a 20. Aquí hay una discusión al respecto.

Posible solución

Creo que podría arreglarse con un tiempo entre intentos más espaciado. Aunque esto tal vez haga que la terminal se quede visible más tiempo.

Mejoras a futuro

Resultado final

Las computadoras están sincronizadas correctamente; en unos minutos se sincronizaron todas. Y me sobró tiempo para escribir esta explicación.

Fondos sincronizados correctamente

#robocopy #powershell #scripts #windows #sincronización

Reply to this post by email ↪