Como mantener sincronizado OneDrive en un Servidor Windows sin necesidad de un usuario logado

Es posible que en alguna ocasión os haya surgido la necesidad de instalar OneDrive en un servidor Windows para por ejemplo mantener sincronizada en local una biblioteca de Sharepoint o alguna carpeta y os habréis encontrado con la sorpresa de que OneDrive no funciona como un servicio y por tanto si el usuario no se encuentra logado no se realiza la sincronización, pues bien, en esta entrada voy a enseñaros un truco para solucionarlo.

Requisitos

  • Servidor con Windows Server 2008 R2 o superior.
  • OneDrive instalado y configurado con las carpetas/bibliotecas/etc sincronizadas en la sesión de un usuario del servidor (puede ser usuario local o de dominio).
  • Usuario con los permisos necesarios para crear tareas programadas.

Configuración tarea programada

Para mantener la sincronización activa sin necesidad de un usuario logado vamos a crear una tarea programada de Windows que se encargue de mantener activa la sincronización.

Abrimos el programador de tareas de Windows y pulsamos sobre Crear tarea.

En la pestaña General realizamos la siguiente configuración:

  • Ponemos un nombre a nuestra tarea programada.
  • Configuramos una cuenta con permisos de administrador o bien la cuenta del usuario donde previamente hemos hecho la configuración de OneDrive.
  • Marcamos la opción «Ejecutar tanto si el usuario inició sesión como si no».
  • Marcamos el check «Ejecutar con los privilegios más altos».

En la pestaña Desencadenadores creamos un desencadenador por cada hora del día. Se que existe la posibilidad de crear un único desencadenador e indicarle que se repita cada hora pero si por ejemplo alguien reiniciara el servidor la tarea no se ejecutaría hasta el día siguiente a la hora indicada y esto en función de la criticidad del servicio que utilice esta sincronización puede ser importante o no.

No os preocupeis si pensais que se van a abrir varios OneDrive uno por cada hora porque lo configuraremos para que si ya se está ejecutando una instancia no haga nada.

Cada uno de los desencadenadores debe llevar la siguiente configuración:

  • Seleccionamos Diariamente.
  • Modificamos la hora por la que corresponda.

Aceptamos para guardar la programación.

Repetimos la operación con cada hora del día debiendo de quedar al final como os muestro a continuación.

En la pestaña Acciones creamos una nueva acción con la siguiente configuración:

  • Acción: Iniciar un programa.
  • Programa o script: C:\Users\USERNAME\AppData\Local\Microsoft\OneDrive\OneDrive.exe (cambiar USERNAME por el nombre del usuario donde habéis configurado OneDrive).

Aceptamos para guardar la acción.

Por último en la pestaña Configuración marcamos el check «Ejecutar tarea lo antes posible si no hubo inicio programado».

Y aseguraros que en «Aplicar la siguiente regla si la tarea ya está en ejecución» esté el valor «No iniciar una instancia nueva», esto hará que no nos habrá una instancia de OneDrive por cada hora del día.

Aceptamos la ventana del programador de tareas y de esta forma tan sencilla nuestro OneDrive permanecerá constantemente sincronizado aunque no tengamos ningún usuario con la sesión iniciada.

Espero os haya sido de utilidad.

Entradas relacionadas

2 comentarios en «Como mantener sincronizado OneDrive en un Servidor Windows sin necesidad de un usuario logado»

  1. Hola Sergio, muchas gracias por ese conocimiento que nos brindas, había tenido la necesidad de lograr mantener sincronizado onedrive en un servidor. Tengo una duda, la tarea programada presenta varios «Warning» con el mensaje: «Task Scheduler did not launch task «\ETL\Sincronizacion OneDrive» because instance «{XXXXX-XXXXX-XXXX-XXXX}» of the same task is already running.» Es normal que se presenten esas advertencias?
    Saludos y gracias.

    Responder
    • Hola Fernando,

      Es totalmente normal y no debes de preocuparte.
      El motivo de esos Warning es que en el tutorial hemos configurado que la tarea se ejecute cada hora pero para evitar que se ejecuten varias instancias de OneDrive en la configuración indicamos que si existe una instancia corriendo no levante otra, de ahí que te salga esos Warning. Esto se configura así porque si ponemos que la tarea se ejecute a una hora concreta si por ejemplo el servicio se parara o alguien reiniciara el servidor por algún motivo la tarea no volvería a ejecutarse hasta el día siguiente y este es el motivo de realizar esta configuración ya que así te aseguras que como máximo, si pasara algo, el servicio estaría 1 hora sin ejecutarse.

      Espero haya resuelto tu duda.

      Saludos.

      Responder

Deja un comentario