Planen einer Task mit PowerShell zur stündlichen Ausführung von Montag bis Freitag zwischen 8.00 und 18.00 Uhr

645
DivZ

Ich muss eine Aufgabe zur Ausführung planen:

  • Montag bis Freitag
  • Jede Stunde von 8 bis 18 Uhr

Ich kann dies über die reguläre Taskplaner-GUI ausführen, aber da ich ein gruppenverwaltetes Dienstkonto zum Ausführen dieser Aufgabe verwende, muss ich dies von Powershell aus tun.

Ich habe versucht, die Parameter -RepetitionDurationund -RepetitionIntervalim New-ScheduledTaskTriggerCmdlet zu verwenden, aber um dies zu verwenden, muss ich die Option -once parameter?

Bitte beraten!

Planen einer Task mit PowerShell zur stündlichen Ausführung von Montag bis Freitag zwischen 8.00 und 18.00 Uhr

1
Welche Version von PowerShell? Haben Sie sich mit dem Importieren einer XML-Datei mit einer geplanten Aufgabe befasst, für die der Zeitplan bereits festgelegt wurde? music2myear vor 6 Jahren 0

1 Antwort auf die Frage

0
postanote

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"