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?

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

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

Olá, acho que isso só funciona se a Duração for infinita - ([timespan] :: MaxValue) #: #
Michael Michael
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.