Erstellen einer geplanten Aufgabe in Windows, die in unbestimmten Abständen ausgeführt wird

16

Die Task SchedulerTriggereinstellungen scheinen mich etwas zu verwirren . (Ich bin auf Windows Server 2008 Web)

Ich möchte eine Aufgabe erstellen, die alle 5 Minuten ausgeführt wird, unabhängig davon, ob ein Benutzer angemeldet ist oder nicht, und die beim Neustart des Computers direkt in den Zeitplan zurückgeht.

Also habe ich alles wie erforderlich eingerichtet, aber beachte, dass es zwei Optionen für meinen Auslöser gibt:

  1. Beginnen Sie die Aufgabe At Startup(und Advanced Settingswiederholen Sie sie dann alle fünf Minuten auf unbestimmte Zeit)
  2. Beginnen Sie die Aufgabe At task creation/modification(und Advanced Settingswiederholen Sie sie dann alle fünf Minuten auf unbestimmte Zeit)

Wenn ich (1) wähle, läuft es nicht sofort. Ich muss neu starten, was ich nicht tun möchte.

Wenn ich (2) wähle, wird es sofort ausgeführt, aber nach dem nächsten Neustart nicht.

Wenn ich sowohl für (1) als auch für (2) Trigger erstelle, funktioniert dies möglicherweise. Wenn ich die Aufgabe jedoch in Zukunft ändere, werden dann zwei Instanzen ausgeführt, da beide Trigger ausgelöst werden? Oder werden die 5-Minuten-Intervalle, die seit dem Start begonnen haben, außer Kraft gesetzt? Ich will auch nicht.

Irgendwelche Ideen?

Ross
quelle

Antworten:

25

Ich würde es so versuchen:

  1. Hinzufügen eines Auslösers: Bildbeschreibung hier eingeben Stellen Sie sicher, dass das aktuelle Datum und 00:00:00 als Startzeit festgelegt sind
  2. Stellen Sie sicher, dass die Aufgabe so schnell wie möglich ausgeführt wird, wenn der Start verpasst wurde: Bildbeschreibung hier eingeben
Der Hochstapler
quelle
5
Vielen Dank. "Lauf so schnell wie möglich, wenn der Start verpasst wurde" war der Schlüssel.
Ross
2

So erstellen Sie eine solche geplante Aufgabe mit 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
quelle
Hallo, ich denke, das funktioniert nur, wenn die Dauer unendlich ist - ([Zeitspanne] :: MaxValue)
Michael