Tworzenie zaplanowanego zadania w systemie Windows, które będzie działało w nieskończoność

16

Wygląda na to, że jestem nieco zdezorientowany Task Schedulerustawieniami wyzwalacza. (Jestem w systemie Windows Server 2008 Web)

Chcę utworzyć zadanie, które będzie uruchamiane co 5 minut, niezależnie od tego, czy użytkownik jest zalogowany, czy nie, i które wraca do harmonogramu po ponownym uruchomieniu komputera.

Tak więc skonfigurowałem to wszystko zgodnie z wymaganiami, ale zauważ, że moje Trigger ma dwie opcje:

  1. Rozpocznij zadanie At Startup(a następnie użyj, Advanced Settingsaby powtarzać co pięć minut w nieskończoność)
  2. Rozpocznij zadanie At task creation/modification(a następnie użyj, Advanced Settingsaby powtarzać co pięć minut w nieskończoność)

Jeśli wybiorę (1), nie będzie działać od razu. Będę musiał ponownie uruchomić komputer, czego nie chcę robić.

Jeśli wybiorę (2), uruchomi się od razu, ale nie będzie po następnym uruchomieniu.

Jeśli utworzę wyzwalacze zarówno dla (1), jak i (2), może to działać, ale jeśli kiedykolwiek zmodyfikuję to zadanie w przyszłości, czy będą uruchomione dwa wystąpienia, gdy oba wyzwalacze zostaną uruchomione? A może zastąpi 5-minutowe interwały, które rozpoczęły się od uruchomienia? Ja też nie chcę.

Jakieś pomysły?

Ross
źródło

Odpowiedzi:

25

Spróbowałbym tak:

  1. Dodaj wyzwalacz: wprowadź opis zdjęcia tutaj ustaw bieżącą datę i 00:00:00 jako godzinę rozpoczęcia
  2. Upewnij się, że zadanie zostanie uruchomione tak szybko, jak to możliwe, jeśli start został pominięty: wprowadź opis zdjęcia tutaj
Der Hochstapler
źródło
5
Dzięki. Kluczem było „Uruchom tak szybko, jak to możliwe, jeśli start się nie udało”.
Ross
2

Oto jak utworzyć takie zaplanowane zadanie za pomocą 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
źródło
Hullo Myślę, że to działa tylko wtedy, gdy Czas trwania jest nieskończony - ([przedział czasowy] :: MaxValue)
Michael