Crear una tarea programada en Windows que se ejecutará a intervalos indefinidamente

16

Parece que estoy un poco confundido por la Task Schedulerconfiguración del disparador. (Estoy en Windows Server 2008 Web)

Quiero crear una tarea que se ejecutará cada 5 minutos, ya sea que un usuario haya iniciado sesión o no, y que regrese a su programación cuando la computadora se reinicie.

Y así, lo configuré todo según sea necesario, pero tenga en cuenta que hay dos opciones para mi Trigger:

  1. Comience la tarea At Startup(y luego use Advanced Settingspara repetir cada cinco minutos indefinidamente)
  2. Comience la tarea At task creation/modification(y luego use Advanced Settingspara repetir cada cinco minutos indefinidamente)

Si elijo (1), no se ejecutará de inmediato. Tendré que reiniciar, lo que no quiero hacer.

Si elijo (2), se ejecutará de inmediato, pero no lo hará después del próximo reinicio.

Si creo disparadores para ambos (1) y (2), puede funcionar, pero cuando modifique la tarea en el futuro, ¿se ejecutarán dos instancias mientras se disparan ambos disparadores? ¿O anulará los intervalos de 5 minutos que han comenzado desde el inicio? Yo tampoco quiero que suceda.

¿Algunas ideas?

Ross
fuente

Respuestas:

25

Lo intentaría así:

  1. Agregue un disparador: ingrese la descripción de la imagen aquí asegúrese de establecer la fecha actual y 00:00:00 como hora de inicio
  2. Asegúrese de que la tarea se ejecute lo antes posible si se perdió el inicio: ingrese la descripción de la imagen aquí
Der Hochstapler
fuente
55
Gracias. "Ejecutar lo antes posible si se perdió el inicio" fue la clave.
Ross
2

Aquí le mostramos cómo crear dicha tarea programada con PowerShell:

$executable = "foo.exe"
$taskName = "My Task"
$action = New-ScheduledTaskAction -execute $executable
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).Date
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $action -Setting $settings -description $description -User "NT AUTHORITY\SYSTEM" -RunLevel 1
$trigger.RepetitionInterval = (New-TimeSpan -Minutes 5)
$trigger.RepetitionDuration = (New-TimeSpan -Days 1000)
Set-ScheduledTask $taskName -Trigger $trigger
mbp
fuente
Hola, creo que esto solo funciona si la Duración es infinita - ([timespan] :: MaxValue)
Michael