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

14

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

Eu quero criar uma tarefa que será executada a cada 5 minutos, esteja um usuário logado ou não, e isso retornará ao cronograma quando o computador for reinicializado.

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

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

Se eu escolher (1), 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 após a próxima reinicialização.

Se eu criar gatilhos para os dois (1) e (2), pode funcionar, mas quando eu modificar a tarefa no futuro, haverá duas instâncias sendo executadas quando ambos os gatilhos forem disparados? Ou será que vai substituir os intervalos de 5 minutos que começaram desde a inicialização? Eu não quero que aconteça.

Alguma idéia?

    
por Ross 22.03.2012 / 13:52

2 respostas

21

Eu tentaria assim:

  1. Adicione um acionador: Certifique-sededefiniradataatuale00:00:00comoahoradeinício
  2. Certifique-sedequeatarefasejaexecutadaomaisrápidopossívelseapartidativersidoperdida:
por 22.03.2012 / 14:07
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
    
por 24.01.2014 / 23:14