Dies ist der von Microsoft dokumentierte Ansatz, um dieses Problem zu lösen.
Hinweis: Sie müssen die Einstellungsoptionen in den Dropdown-Feldern verwenden, auch wenn es sich bei der GUI um Freiform-Felder handelt.
Sehen:
Konfigurieren von erweiterten Parametern für geplante Aufgaben mithilfe von PowerShell
Die fehlenden Parameter
Toll, jetzt haben wir ein Skript, eine geplante Aufgabe, die das Skript ausführt, und es wird jedes Mal ausgeführt, wenn der Server oder die Arbeitsstation gestartet wird. Wir haben jedoch eine der Voraussetzungen nicht erfüllt. Die Aufgabe muss sich auch 1 Tag lang alle 10 Minuten wiederholen. Wenn Sie zurückgehen und versuchen, ein Wiederholungsintervall oder eine Wiederholungsdauer hinzuzufügen, werden Sie feststellen, dass keine Option für den Parameter -AtStartup verfügbar ist:
Über die GUI stehen die geplanten Task-Parameter zur Verfügung:
Sie sind jedoch nicht über das PowerShell-Cmdlet New-ScheduledTaskTrigger verfügbar, wenn Sie den Parameter -AtStartup auswählen. Sie sind über den Parameter -Once verfügbar, dies würde jedoch die Anforderungen nicht erfüllen. Die Lösung besteht darin, die Eigenschaften der Aufgabe mithilfe des XML-Schemas direkt zu ändern. Das mag auf den ersten Blick kompliziert klingen, aber in Wirklichkeit ist es sehr einfach und ermöglicht es Ihnen, praktisch jeden Parameter der geplanten Aufgabe zu ändern.
Schritt 1 - Holen Sie sich die geplante Aufgabe. Der erste Schritt besteht darin, die gerade erstellte geplante Aufgabe abzurufen und in einem Objekt zu speichern.
$Task = Get-ScheduledTask -TaskName "SampleScheduledTask"
Schritt 2 - Aktualisieren Sie die spezifische Eigenschaft der Aufgabe, die Sie ändern möchten. Für dieses Beispiel möchten wir eine Wiederholungsdauer und ein Wiederholungsintervall hinzufügen.
$Task.Triggers.Repetition.Duration = "P1D" $Task.Triggers.Repetition.Interval = "PT10M"
Sie fragen sich wahrscheinlich, wie ich wusste, dass P1D eine Dauer von 1 Tag entspricht, und wie ich wusste, dass PT10M einem Wiederholungsintervall von 10 Minuten entsprechen würde, da es sich nicht um die typischen Werte für Datum / Uhrzeit oder Zeitspanne handelt, an die Sie wahrscheinlich gewöhnt sind. Um diese Werte zu erhalten, habe ich einfach die Dauer und das Intervall konfiguriert, die ich über die GUI wollte, und dann das Ergebnis über Powershell mit folgendem Befehl anzeigen:
$Task.Triggers.Repetition | fl *
Schritt 3 - Speichern Sie die neue Konfiguration in der geplanten Aufgabe. Denken Sie daran, dass Sie hier die Anmeldeinformationen für die Aufgabe erneut eingeben müssen, da sonst die Operation fehlschlägt.
$Task | Set-ScheduledTask -User "NT AUTHORITY\SYSTEM"