Criando uma tarefa agendada no Windows que será executada em intervalos indefinidamente

16

Parece que estou ficando um pouco confuso com as Task Schedulerconfigurações do gatilho. (Estou no Windows Server 2008 Web)

Quero criar uma tarefa que será executada a cada 5 minutos, independentemente de um usuário estar conectado ou não, e que retorne à sua programação quando o computador for reiniciado.

E assim, configurei tudo conforme necessário, mas observe que há duas opções para o meu gatilho:

  1. Comece a tarefa At Startup(e use Advanced Settingspara repetir a cada cinco minutos indefinidamente)
  2. Comece a tarefa At task creation/modification(e use Advanced Settingspara repetir a cada cinco minutos indefinidamente)

Se eu escolher (1), ele não será executado imediatamente. Vou ter que reiniciar, o que não quero fazer.

Se eu escolher (2), ele será executado imediatamente, mas não será após a próxima reinicialização.

Se eu criar gatilhos para (1) e (2), ele poderá funcionar, mas quando eu modificar a tarefa no futuro, haverá duas instâncias em execução enquanto os gatilhos são disparados? Ou substituirá os intervalos de 5 minutos que começaram desde a inicialização? Eu não quero que isso aconteça.

Alguma ideia?

Ross
fonte

Respostas:

25

Eu tentaria assim:

  1. Adicione um gatilho: insira a descrição da imagem aqui defina a data atual e 00:00:00 como a hora de início
  2. Certifique-se de que a tarefa seja executada o mais rápido possível, se o início foi perdido: insira a descrição da imagem aqui
Der Hochstapler
fonte
5
Obrigado. "Executar o mais rápido possível se o início foi perdido" foi a chave.
22412 Ross
2

Veja como criar essa tarefa agendada usando o 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
fonte
Olá, acho que isso só funciona se a Duração for infinita - ([timespan] :: MaxValue) #: #
Michael Michael