Task SchedulerAutomatizaciónWindows6 min de lectura

Programar tareas con Task Scheduler

Automatizá tareas con Task Scheduler para ejecutar scripts en horarios o eventos definidos.


Task Scheduler (Programador de tareas) te permite ejecutar scripts y programas automáticamente en horarios definidos.

Abrir Task Scheduler

powershell
taskschd.msc

Crear tarea desde PowerShell

Ejemplo 1 — Script de backup diario a las 3 AM

powershell
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Scripts\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 3:00AM
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -DontStopOnIdleEnd

Register-ScheduledTask -TaskName "Backup Diario" -Action $action -Trigger $trigger -Settings $settings -User "SYSTEM" -RunLevel Highest

Ejemplo 2 — Tarea cada 5 minutos

powershell
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -File C:\Scripts\health-check.ps1"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration (New-TimeSpan -Days 365)

Register-ScheduledTask -TaskName "Health Check" -Action $action -Trigger $trigger -User "SYSTEM" -RunLevel Highest

Ejemplo 3 — Tarea al iniciar el sistema

powershell
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-NoProfile -File C:\Scripts\startup.ps1"
$trigger = New-ScheduledTaskTrigger -AtStartup

Register-ScheduledTask -TaskName "Startup Script" -Action $action -Trigger $trigger -User "SYSTEM" -RunLevel Highest

Listar tareas programadas

powershell
Get-ScheduledTask | Where-Object {$_.State -ne 'Disabled'} | Format-Table TaskName, State, TaskPath

Ejecutar una tarea manualmente

powershell
Start-ScheduledTask -TaskName "Backup Diario"

Ver historial de ejecución

powershell
Get-ScheduledTask -TaskName "Backup Diario" | Get-ScheduledTaskInfo

Eliminar una tarea

powershell
Unregister-ScheduledTask -TaskName "Backup Diario" -Confirm:$false

Deshabilitar/habilitar

powershell
Disable-ScheduledTask -TaskName "Health Check"
Enable-ScheduledTask -TaskName "Health Check"

Script de ejemplo para backup

Creá C:\Scripts\backup.ps1:

powershell
$fecha = Get-Date -Format "yyyy-MM-dd"
$origen = "C:\inetpub\midominio"
$destino = "C:\Backups\midominio-$fecha.zip"

Compress-Archive -Path $origen -DestinationPath $destino -Force

# Eliminar backups de más de 7 días
Get-ChildItem "C:\Backups\*.zip" | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-7)} | Remove-Item

¿Te resultó útil esta guía?