Programar una tarea en Windows Server 2016

En todos los sistemas puede ser interesante programar ciertas tareas repetitivas para que se resuelvan automáticamente, sin que el usuario tenga que estar pendiente de ellas.

Sin embargo, en un servidor, esta característica adquiere una mayor importancia, porque existe un buen número de tareas administrativas que deben ejecutarse con una determinada frecuencia o cada vez que se produzca un suceso concreto. Por esto, es importante conocer el modo de programar tareas en un servidor… Y es a lo que vamos a dedicar el artículo de hoy.

Programar una tarea básica

Como el movimiento se demuestra andando, vamos a comenzar por crear una tarea programada sencilla. Por ejemplo, defragmentaremos, de forma automática, todos los volúmenes del sistema una vez a la semana. Además, para evitar que el proceso penalice el rendimiento del servidor, haremos que se ejecute a partir de la media noche de los domingos (dando por supuesto que el sistema estará suficientemente descargado de tráfico en esos momentos).

Como es habitual, abriremos el Programador de tareas desde el Administrador del servidor.

El Adminisgtrador del servidor se abrirá automáticamente al iniciar sesión en el controlador de dominio con la cuenta Administrador, pero si lo has cerrado, puedes abrirlo de nuevo haciendo clic sobre el botón Inicio. En el menú que aparece, elegimos el elemento Administrador del servidor.

Consultar-los-usuarios-que-tienen-un-determinado-privilegio-001

Para comenzar, dentro del menú Herramientas, elegimos Programador de tareas.

Programar-una-tarea-básica-en-Windows-Server-2016-001

Al hacerlo, se abrirá la ventana Programador de tareas, que aparece dividido en tres paneles.

Puedes evitar el paso por el Administrador del Servidor usando la orden taskschd.msc. Sólo tienes que usar la combinación de teclas Windows + R y, en la ventana que aparece, escribir la orden.

Programar-una-tarea-básica-en-Windows-Server-2016-002

La forma más sencilla de crear una nueva tarea programada es hacer clic sobre el enlace Crear tarea básica… en el panel derecho.

Programar-una-tarea-básica-en-Windows-Server-2016-003

De este modo, conseguimos que se abra el Asistente para crear tareas básicas, que nos irá mostrando una serie de pasos en los que iremos indicando cada uno de los aspectos de la tarea programada.

En el primer paso, escribiremos un nombre y una breve descripción para la tarea.

Después, haremos clic sobre el botón Siguiente.

Programar-una-tarea-básica-en-Windows-Server-2016-004

En el siguiente paso, deberemos indicar el desencadenador. El desencadenador es el criterio que debe cumplirse para iniciar la ejecución de la tarea que estamos programando.

Se pueden diferenciar dos tipos de desencadenadores:

  • Los que se producen en función del tiempo: El inicio de una tarea (o de varias) se programa a una hora en particular, todos los días o en días concretos de la semana o del mes.
  • Los que se producen en función de un evento: Pueden iniciar la tarea siempre que se inicie el sistema, cuando un usuario inicie su sesión, cuando el sistema entre en estado de inactividad o al registrar cualquier otro evento específico.

Como en este ejemplo vamos a realizar la tarea una vez a la semana, hacemos clic sobre la opción Semanalmente.

A continuación, haremos clic sobre el botón Siguiente.

Programar-una-tarea-básica-en-Windows-Server-2016-005

La hora universal hace referencia a UTC (Universal Time Coordinated), la hora estándar que regula el tiempo para todo el planeta.

UTC permanece sincronizado con la hora media del meridiano de Greenwich, que depende de la duración del día solar.

Lo siguiente será establecer el intervalo. Elegiremos la fecha a partir de la que se iniciará la ejecución automática de la tarea.

La tarea se ejecutará la próxima vez que el día de la semana coincida con el que se haya indicado debajo. En el ejemplo, aunque la tarea se programe para el día 10, no se ejecutará hasta el día 06, que es domingo.

Además, elegiremos el intervalo. Si es 1, la ejecución será semanal; si es 2, se producirá en semanas alternas, etc.

Por uĺtimo, fijaremos la hora a la que debe iniciarse la ejecución de la tarea. El valor para la hora puede ser local (la hora oficial del país en el que se encuentre el servidor) o universal.

Por supuesto, si elegimos un desencadenador diferente, las opciones que debemos establecer también cambiarán. Sin embargo, son tan fáciles de interpretar como las que hemos visto en este ejemplo.

Una vez establecidos los valores para el desencadenador, haremos clic de nuevo sobre el botón Siguiente.

Programar-una-tarea-básica-en-Windows-Server-2016-006

El siguiente paso será definir la acción, es decir, el trabajo que se llevará a cabo cuando se active el desencadenador.

Una tarea programada puede contener entre 1 y 32 acciones y cada una de ellas deberá tener sus propios parámetros de ejecución, que indicarán cómo debe realizarse.

Cuando creamos una tarea básica, sólo podemos añadir una acción, pero, cuando accedamos a las propiedades de la tarea programada, podremos añadir hasta 31 acciones más (veremos más abajo cómo abrir la ventana de propiedades de una tarea).

Como puedes ver en la imagen, aparecen tres acciones:

  • Iniciar un programa
  • Enviar un correo electrónico (desusado)
  • Mostrar un mensaje (desusado)

Sin embargo, dos de ellas incluyen el texto desusado entre paréntesis. Esto significa que, aunque la opción aparezca aquí, no podremos establecer acciones de estas categorías. Supongo que se mantiene como herencia de versiones anteriores de Windows Server.

Para continuar, volveremos a hacer clic sobre el botón Siguiente.

Programar-una-tarea-básica-en-Windows-Server-2016-007

Lo siguiente será indicar el programa que queremos ejecutar. Para conseguirlo, lo más sencillo es utilizar el botón Examinar y buscarlo en el disco duro del servidor. También podríamos escribirlo directamente en el cuadro de texto, pero tendríamos que recordar su ubicación y nombre exactos.

Hacemos clic sobre el botón Examinar

Programar-una-tarea-básica-en-Windows-Server-2016-008

Nos aparecerá la ventana típica para abrir archivos. En ella, localizaremos el programa que queremos ejecutar de forma programada. En nuestro caso, lo encontramos en C:\Windows\System32 y el ejecutable se llama Defrag.exe. Observa que, siguiendo este mecanismo habríamos podido elegir cualquier archivo ejecutable, o cualquier proceso por lotes, que tuviésemos almacenado en cualquier disco duro del servidor.

Cuando lo hayamos encontrado, lo seleccionamos y hacemos clic sobre el botón Abrir.

Programar-una-tarea-básica-en-Windows-Server-2016-009

De vuelta en la ventana Asistente para crear tareas básicas, veremos que ya se ha completado el cuadro de texto con la acción. En nuestro caso, también hemos incluido el argumento -c para indicar que queremos defragmentar todos los volúmenes locales del servidor.

En el caso de que la acción ingresada necesite interactuar con los datos de alguna carpeta (por ejemplo, copiar archivos de una ubicación a otra), en el cuadro Iniciar en (opcional) indicaríamos la carpeta predeterminada sobre la que actuará dicha acción.

Cuando estemos listos, hacemos clic sobre el botón Siguiente.

Programar-una-tarea-básica-en-Windows-Server-2016-010

Después de esto, habremos llegado al final del Asistente para crear tareas básicas, por lo que el sistema nos ofrece un resumen de los valores que hemos introducido en los puntos anteriores. Si observamos algún error, podremos subsanarlo haciendo clic sobre el botón Atrás, hasta llegar al aspecto que necesitemos cambiar.

Si todo es correcto, haremos clic sobre el botón Finalizar.

Programar-una-tarea-básica-en-Windows-Server-2016-011

Si dejamos sin marcar la casilla Abrir el diálogo Propiedades para esta tarea al hacer clic en Finalizar, se cerrará el asistente y volveremos a la ventana principal del Programador de tareas.

Propiedades de la tarea programada

Si, por el contrario, marcamos la casilla, al finalizar el asistente, se abre de forma automática la ventana Propiedades de la tarea programada. También podremos volver a esta ventana en cualquier momento, tal y como veremos más abajo en el apartado Reabrir la ventana Propiedades de una tarea programada.

En la ventana Propiedades dispondremos de diferentes solapas, que nos permitirán configurar cada aspecto de la tarea programada.

En la solapa General, tendremos la oportunidad de modificar la descripción que hemos escrito para la tarea. Además, podremos establecer las Opciones de seguridad que nos parezcan adecuadas.

En este caso, la tarea se ejecutará aunque no se haya iniciado sesión y se emplearán los privilegios más altos.

Programar-una-tarea-básica-en-Windows-Server-2016-012

En la solapa Desencadenadores podremos modificar los datos relativos a los criterios que deberán cumplirse para iniciar la ejecución de la tarea.

Podremos añadir un nuevo desencadenador haciendo clic sobre el botón Nuevo… Además, si hacemos clic sobre alguno de los desencadenadores existentes, dispondremos de dos opciones:

  • Modificar sus características, haciendo clic sobre el botón Editar
  • Suprimirlo, usando el botón Eliminar.

La ventaja de añadir más de un desencadenador para una tarea es que podremos hacer que ésta se inicie bajo una variedad de condiciones.

En nuestro caso, nos hemos limitado a comprobar el valor almacenado

Programar-una-tarea-básica-en-Windows-Server-2016-013

La siguiente solapa contiene las acciones asociadas a la tarea programada. Si hubiese más de una, se ejecutarían en orden secuencial, comenzando por la primera de la lista.

Si seleccionamos una acción (haciendo clic sobre ella), podremos alterarla de diferentes formas:

  • Cambiar su orden, con respecto al resto de acciones, usando los botones que aparecen a la derecha de la lista.
  • Modificar sus datos, usando el botón Editar
  • Suprimirla, haciendo clic sobre el botón Eliminar.

Además, como indicamos más arriba, podremos añadir nuevas acciones a la lista haciendo clic sobre el botón Nueva

En la lista de acciones podemos ver el tipo de acción y la orden asociada.

Programar-una-tarea-básica-en-Windows-Server-2016-014

En la solapa Condiciones indicaremos los criterios que deben cumplirse para que el desencadenador se active. Por ejemplo, podríamos hacer que si, cuando llegue el momento de iniciar la acción, el servidor no lleva al menos cinco minutos inactivo, ésta no se inicie.

En nuestro caso, hemos elegido iniciar la tarea sólo si el equipo está funcionando sin baterías. Además, la tarea se interrumpirá si el equipo comienza a utilizarlas.

Programar-una-tarea-básica-en-Windows-Server-2016-015

En la solapa Configuración indicaremos algunas cuestiones complementarias sobre cómo debe comportarse el sistema en relación a la tarea

Por ejemplo, resulta muy útil que la tarea se ejecute lo antes posible cuando se haya saltado un inicio programado.

Programar-una-tarea-básica-en-Windows-Server-2016-016

Por último, en la solapa Historial podemos comprobar cuantas veces se ha ejecutado la tarea y cuál ha sido su resultado.

En este caso, aún no se ha ejecutado nunca, porque acabamos de crearla.

Programar-una-tarea-básica-en-Windows-Server-2016-017

Cuando hayamos terminado, podemos hacer clic sobre el botón Aceptar para guardar los cambios que hayamos realizado. O podemos hacer clic sobre el botón Cancelar para dejar la tarea tal y como estaba antes de entrar en la ventana Propiedades.

Reabrir la ventana Propiedades de una tarea programada

Para volver a abrir la ventana de propiedades en el futuro, sólo tenemos que localizarla en la Biblioteca del programador de tareas y hacer clic sobre ella con el botón derecho del ratón.

En el menú de contexto que aparece, elegimos Propiedades.

Programar-una-tarea-básica-en-Windows-Server-2016-018

Por ejemplo, ahora podemos comprobar que ya sí tenemos anotaciones en la solapa Historial.

Programar-una-tarea-básica-en-Windows-Server-2016-019

Programar una tarea avanzada

Como hemos visto más arriba, podemos utilizar el Asistente para crear tareas básicas para crear una tarea programada y, después, utilizar su ventana de propiedades para ajustar su comportamiento de una forma más precisa. Sin duda, este es mi método preferido.

Sin embargo, el Programador de tareas también nos permite crear tareas programadas desde cero.

Para conseguirlo, sólo tenemos que recurrir al enlace Crear tarea que hay en el panel derecho.

Programar-una-tarea-básica-en-Windows-Server-2016-020

Aparecerá una ventana de Propiedades como en el apartado anterior, aunque ahora se titula Crear tarea y no dispone de la solapa Historial.

En las diferentes solapas iremos añadiendo los valores adecuados para la tarea que pretendamos programar.

Programar-una-tarea-básica-en-Windows-Server-2016-021

Tareas programadas de forma predeterminada

Windows Server 2016 incorpora una serie de modelos para tareas programadas de forma predeterminada. Puedes encontrarlas desplegando el elemento Biblioteca del Programador de tareas del panel izquierdo del Programador de tareas.

Por supuesto, podemos acceder a cualquiera de las tareas predefinidas y modificarlas para adaptarlas a nuestras necesidades.

Por ejemplo, en la imagen vemos una tarea programada predefinida para defragmentar los volúmenes del sistema.

Programar-una-tarea-básica-en-Windows-Server-2016-022

Y esto es todo por hoy. Como siempre, espero que nuestro artículo te resulte útil.