Creación de una tarea programada automatizada en Windows con PowerShell

Para que un script de mantenimiento preventivo se ejecute de forma completamente desatendida —por ejemplo, todas las semanas en la madrugada sin que el usuario tenga que intervenir—, la mejor opción es registrarlo como una Tarea Programada nativa en Windows utilizando comandos de PowerShell. Esto garantiza que el script corra con los privilegios correctos y en el horario establecido.

A continuación, se detalla el procedimiento paso a paso para crear, configurar y verificar una tarea programada automatizada.

Paso 1: Definir la acción del script

El primer paso consiste en indicarle al sistema qué archivo ejecutable debe abrir y qué parámetros o script de PowerShell debe procesar.

PowerShell

$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-ExecutionPolicy Bypass -File C:\Scripts\MantenimientoPreventivo.ps1"

Verificación: Puedes comprobar que la variable $Action se creó correctamente ejecutando $Action en la consola para ver la ruta y los argumentos asignados.

Paso 2: Configurar el disparador (Cuándo se ejecutará)

Define la frecuencia temporal en la que se lanzará la rutina de mantenimiento. Para entornos corporativos, lo ideal es programarla fuera del horario laboral.

PowerShell

$Trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Sunday -At "03:00AM"

Verificación: Ejecuta $Trigger en la consola para confirmar que la frecuencia semanal y la hora (03:00 AM) se configuraron tal como lo planeaste.

Paso 3: Establecer los privilegios de ejecución (Principal)

Dado que el script realiza tareas profundas (limpieza de temporales, actualización de políticas, diagnóstico de discos), necesita ejecutarse con permisos elevados de administrador, idealmente bajo la cuenta del sistema local.

PowerShell

$Principal = New-ScheduledTaskPrincipal -UserId "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest

Verificación: Verifica que la propiedad RunLevel de la variable $Principal muestre Highest (más altos privilegios).

Paso 4: Registrar y crear la tarea programada en el sistema

Una vez definidos la acción, el disparador y los privilegios, se procede a registrar la tarea de forma definitiva en el Programador de Tareas de Windows.

PowerShell

Register-ScheduledTask -TaskName "MantenimientoPreventivoCorporativo" -Action $Action -Trigger $Trigger -Principal $Principal -Description "Ejecución semanal automática de mantenimiento y limpieza de sistema."

Verificación: El comando devolverá en pantalla una tabla con los detalles de la tarea registrada (Estado, Nombre y Rutas), confirmando su creación exitosa.

Paso 5: Comprobación final y gestión operativa

Para verificar en cualquier momento que la tarea se encuentra activa y lista para ejecutarse según lo programado, puedes utilizar el siguiente comando de consulta:

PowerShell

Get-ScheduledTask -TaskName "MantenimientoPreventivoCorporativo" | Select-Object TaskName, State, Author

Verificación: El estado (State) devuelto debe ser Ready (Listo), lo que indica que la tarea está configurada correctamente y esperando su próxima ventana de ejecución.

Comandos útiles adicionales para administración

  • Ejecutar la tarea de forma manual (para pruebas):PowerShellStart-ScheduledTask -TaskName "MantenimientoPreventivoCorporativo"
  • Eliminar la tarea programada:PowerShellUnregister-ScheduledTask -TaskName "MantenimientoPreventivoCorporativo" -Confirm:$false

Scroll al inicio