Saltar a contenido

Scripts PowerShell con tareas programadas en Windows Server

En esta práctica vamos a ver un ejemplo de como ejecutar scripts de PowerShell con tareas programadas en Windows Server y poder así automatizar tareas. Puentos a realizar:

  • La Práctica esta realizada en un Windows Server 2016, se trata de adaptar la práctica a un Windows Server 2019.
  • Generar varios temporales con los datos que se quiera, para comprobar que se eliminan con el Powershell, (la condición de eliminación habrá que modificarla para que elimine temporales según las ultimas horas o minutos en los que hayais realizado la práctica).
  • Realizar un nuevo informe con las capturas destacables de la práctica.

A continuación el Ejemplo:

  • Para empezar se muestra un script realizado en PowerShell, llamado "eliminarfiles.ps1", cuya función será eliminar los ficheros de un directorio que tengan más de 7 días:
Poweshell eliminarfiles.ps1
  • A continuación el directorio que se ha introducido en el script, y se pueden ver los archivos que debe eliminar y los que tiene que dejar:
Archivos a eliminar
  • Ahora se abre el "Programador de tareas", a través del Administrador del servidor:
Programador de tareas
  • Se crea una carpeta llamada "PoweShell":
Creación carpeta PowerShell I
Creación carpeta PowerShell II
  • A continuación dentro de esta carpeta se crea una tarea:
Creación tarea I
  • Se abre el siguiente asistente, y sobre la pestaña "General" se configura, un nombre y una descripción para la tarea, que ejecute la tarea con la cuenta de Administrador y la configuramos para Windows Server:

  • Sobre la pestaña "Desencadenadores" se programarla tarea, para que la realice todos los Domingos a las 16:00 horas:
Configuración Desencadenador I
Configuración Desencadenador II
  • Sobre la pestaña "Acciones" se indica que inicie un PowerShell y ejecute el script que se ha mostrado anteriormente y que elimina los ficheros con más de 7 días:
Configuración Acciones I
Configuración Acciones II
  • A continuación se pregunta si queremos ejecutar el programa "PowerShell" con los siguientes argumentos, le indicamos que "Sí":
Configuración Acciones III
  • Se quedaría de la siguiente manera:

  • Las "Condiciones" y "Configuración" se dejan por defecto:

  • Se podría comprobar que la tarea esta programada:
Comprobación tarea programada
  • Se habilita el "Historial de todas las tareas":
Habilitar Historial de todas las tareas
  • Se ejecuta la tarea manualmente y para verificar que ha eliminado los ficheros con más de 7 días:
Ejecución tarea manualmente
  • Se puede observar que la tarea se ha completado correctamente y sobre el "Historial" podemos ver los logs de la tarea:
Comprobación de la ejecución
  • Se puede ver que se ha eliminado los ficheros del directorio indicado en el script superiores a 7 días:
Comprobación de la ejecución