Per PowerShell Aufgabenplanung auslesen » IT-LEARNER

Per PowerShell Aufgabenplanung auslesen

Überblick

Mit der PowerShell Aufgabenplanung auslesen, auch, dass ich möglich. Die Windows Aufgabenplanung ist eines der zentralen Elemente, wenn es um das Automatisieren von Aufgaben im Windows Betriebssystem geht.

Neben der Konfiguration über die grafische Oberfläche, gibt es auch die Möglichkeiten einzelne Aufgaben bzw. Tasks mit der neuen PowerShell zu verwalten.

PowerShell Aufgabenplanung auslesen – Cmdlet

Wenn man sein Windows 10* frisch installiert hat, so sind auf dem System selbst schon einige Aufgaben vorhanden. Natürlich kommen im Laufe der Zeit immer mehr dazu.

Für die Anzeige der Aufgaben verwendet man das Cmdlet Get-ScheduledTask. Der folgende Screenshot zeigt alle Aufgaben, jedoch nicht sortiert nach deren Status, aber mit dem Namen und deren Pfad. Der Pfad (TaskPath) gibt Auskunft über die Anordnung (Baumstruktur) bei der Aufgabenverwaltung.

Verwendet wird diese, wenn man mehr Details zu einer Aufgabe auslesen möchte. Im folgenden Screenshot wurde die Aufgaben eines frisch installierten Windows Server aufgerufen.

Get-ScheduledTask

Per PowerShell Aufgabenplanung auslesen
Per PowerShell Aufgabenplanung auslesen – Get-ScheduledTask

Natürlich ist es nun sinnvoller, wenn man die Aufgaben etwas sortiert. Am besten nach deren Status, wofür es drei verschiedene Optionen gibt. Ready, Running und Disabled.

Das erste Beispiel liefert alle laufenden Aufgaben und das zweite Beispiel alle Aufgaben deren Pfad mit Windows* beginnt. Der Stern steht dabei für eine WildCard, also einem beliebigen Zeichen.

Beispiel 1:

Get-ScheduledTask | Where-Object state -eq running

Windows Aufgabenplanung mit der PowerShell verwalten - Laufende Aufgaben zeigen
Per PowerShell Aufgabenplanung auslesen – Verwendung der Pipe

Beispiel 2:

Get-ScheduledTask -TaskPath \Microsoft\Windows\Windows*

Windows Aufgabenplanung mit der PowerShell verwalten - Bestimmte Aufgaben zeigen
Per PowerShell Aufgabenplanung auslesen – Cmdlet

Details zu einer Aufgabe auslesen

Oft möchte man von einer einzelnen Aufgabe mehr Informationen erhalten. Auch hierfür gibt es ein Cmdlet. Dieses hat den Namen: Get-ScheduledTaskInfo. Natürlich benötigt dieses Cmdlet dann auch einen Parameter.

Als Parameter könnte man jetzt den Namen des Tasks (Taskname) oder den Pfad des Tasks (TaskPath) übergeben. Am einfachsten ist es allerdings, wenn man sich per Get-ScheduledTask die Aufgabe anzeigen lässt und diese dann mittels der PowerShell Pipe weiterverarbeitet.

Das folgende Beispiel soll das verdeutlichen. Als Erstes wird der entsprechende Task ermitteln. (Hier Windows Defender Cleanup). Anschließend wird dieser mittels Pipe an Get-ScheduledTaskInfo weitergeleitet, womit nun die gewünschten Informationen ausgegeben werden.

Get-ScheduledTask -TaskName "Windows Defender Cleanup" | Get-ScheduledTaskInfo

Windows Aufgabenplanung mit der PowerShell verwalten - Details einer Aufgabe anzeigen
Per PowerShell Aufgabenplanung auslesen – Beispiel

Nachdem man wie oben ersichtlich detaillierte Informationen erhält, kann man diese auch nach bestimmten Kriterien filtern, um evtl. weitere Aufgaben bzw. Tätigkeiten anzuhängen.

Vorstellbar wäre jetzt z. B. dass man sich vom Windows Defender alle Aufgaben ausgeben lässt, die nicht durchgeführt wurden. Zu finden sind diese unter dem Namen: NumberOfMissedRuns.

Get-ScheduledTask -TaskName "Windows Defender Cleanup" | Get-ScheduledTaskInfo | Where NumberOfMissedRuns -gt 0

Übrigens ist hier wieder sehr deutlich zu erkennen, wie sinnvoll und einfach es ist, wenn man die Windows PowerShell Pipe geschickt einsetzt, denn dadurch erhält man genau die Information, nach welcher man sucht.

Aufgaben deaktivieren, stoppen, starten und  löschen

Wenn man jetzt eine bestimmte geplante Aufgabe deaktivieren möchte, so muss man prinzipiell nur das obige Konstrukt verwenden und das Cmdlet Disable-ScheduledTask anhängen. Dies würde für den Windows Defender Task folgendermaßen aussehen:

Get-ScheduledTask -TaskName "Windows Defender Cleanup" | Get-ScheduledTaskInfo | Where NumberOfMissedRuns -gt 0 | Disable-ScheduledTask

Neben dem einfachen deaktivieren ist es genauso möglich Aufgaben zu stoppen, starten oder löschen. Je nachdem gibt es ein entsprechendes Cmdlet, welche durch ihren Namen natürlich selbsterklärend sind.

Enable-ScheduledTask, Stop-ScheduledTask und Start-ScheduledTask. Im folgendem Beispiel sollen alle laufenden Aufgaben gestoppt werden. Mit einer kurzen Abfrage und Pipe Weiterleitung ist das schnell erledigt.

Get-ScheduledTask | Where-Object State -eq running | Stop-ScheduledTask

Eine nachfolgende Überprüfung mit der folgende Abfrage, würde jetzt kein Ergebnis mehr liefern. Somit sind alle Aufgaben gestoppt.

Get-ScheduledTask | Where-Object state -eq running

Zu guter Letzt gibt es auch noch die Möglichkeit, eine Aufgabe komplett zu löschen. Diese gelingt, indem man das Cmdlet Unregister-ScheduledTask verwendet.

Fazit zum PowerShell Aufgabenplanung auslesen

Zur Verwaltung der geplanten Aufgaben gibt es in der Windows PowerShell das Cmdlet Get-ScheduledTask, mit welchem auf vielseitige Weise verschiedene Informationen ausgelesen werden können oder aber auch Aufgaben bearbeitet werden können.

Wer sich oft mit der Aufgabenplanung beschäftigt, der wird bestimmt mehr nutzen, durch die PowerShell haben. Auch in der Microsoft Management Console ist die Aufgabenplanung umfassend vorhanden, jedoch benötigt doch einiges an Zeit, um die gewünschte Aktion durchführen zu können.

Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 18.05.2024

2b6dcac9e4e340799d65b7296e3636d1
Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte.


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


4 Kommentare zu „Per PowerShell Aufgabenplanung auslesen“

    1. Markus Elsberger

      Hallo Michael,
      das ist eine gute Frage. Ich kann die jetzt direkt auch nicht beantworten. Werde mich aber mal damit beschäftigen. Vielleicht finde ich ja was raus.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Ebook - 10 Schritte nach der Windows Installation

Kostenlose Befehlsreferenzen und

E-Books

FREE

Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.