Die Kommunikation zwischen Aufgaben im Windows Taskplaner ist nicht immer einfach, insbesondere wenn eine Aufgabe automatisch nach dem erfolgreichen Abschluss einer anderen gestartet werden soll. Wer dies schon einmal versucht hat, weiß, dass das Erstellen von Triggern allein nicht ausreicht – vor allem, weil der Standard-Ereignistrigger des Taskplaners auf alle abgeschlossenen Aufgaben reagiert, nicht nur auf bestimmte. Das kann zu Problemen führen, beispielsweise dazu, dass die Aufgabe „Pong“ direkt nach einer beliebigen anderen Aufgabe startet, anstatt nur nach der Aufgabe „Ping“.
Damit alles reibungslos funktioniert, müssen Sie die Ereignisanzeige genauer untersuchen und benutzerdefinierte Filter einrichten. Das ist zwar etwas umständlich, aber sehr effektiv, sobald Sie es richtig verstanden haben. Im Prinzip überwachen Sie das Ereignis mit der ID 102 und einem bestimmten Aufgabennamen, sodass die zweite Aufgabe erst dann gestartet wird, wenn die erste, für Sie relevante Aufgabe erfolgreich abgeschlossen wurde.
Wie man eine Aufgabe so einrichtet, dass sie ausgeführt wird, nachdem eine andere Aufgabe erfolgreich abgeschlossen wurde
Suchen und aktivieren Sie das Betriebsprotokoll des Aufgabenplaners.
- Öffnen Sie die Ereignisanzeige, indem Sie eventvwr.msc in die Eingabeaufforderung „Ausführen“ eingeben ( Win + R).
- Navigieren Sie zu Anwendungs- und Dienstprotokolle > Microsoft > Windows > Aufgabenplanung > Betriebsbereit.
- Falls hier keine Protokolle angezeigt werden, klicken Sie mit der rechten Maustaste auf „Betriebsbereit“ und wählen Sie „Protokollierung aktivieren“. Ja, Windows macht es einem manchmal unnötig schwer.
Sobald die Funktion aktiviert ist, können Sie mit der Verfolgung von Aufgabenereignissen beginnen.
Ermitteln Sie das Abschlussereignis Ihrer ersten Aufgabe
- Führen Sie Ihre erste Aufgabe manuell aus, um das Ereignis zu generieren, oder warten Sie, bis sie von selbst abgeschlossen wird.
- Wechseln Sie zum Reiter „Details“ des letzten Ereignisses mit der ID 102 („Aufgabe abgeschlossen“).
- Wechseln Sie zur XML-Ansicht. Hier sehen Sie detaillierte Informationen, einschließlich des Aufgabennamens und der Parameter.
- Suchen Sie nach Datenzeilen wie:
EventID: 102 Provider-Name: Microsoft-Windows-TaskScheduler Channel: Microsoft-Windows-TaskScheduler/Operational TaskName: \MyTasks\Ping
Hinweis: Bei manchen Konfigurationen kann das Ereignis etwas verzögert eintreten oder nicht sofort erscheinen. Bitte haben Sie Geduld oder führen Sie die Aufgabe mehrmals aus, um dies zu überprüfen.
Erstellen Sie einen benutzerdefinierten Ereignisfilter, um Ihre spezifische Aufgabe zu überwachen
- Wählen Sie in den Trigger -Einstellungen für Ihre „Pong“-Aufgabe die Option „ Bei einem Ereignis “.
- Klicken Sie auf „Neuer Ereignisfilter“.
- Stellen Sie Folgendes ein:
- Protokolle : Microsoft-Windows-TaskScheduler/Operational
- Ereignisquelle : TaskScheduler
- Ereignis-ID : 102
- Wechseln Sie unten zur Registerkarte „XML“, um weitere Einstellungen vorzunehmen.
- Aktivieren Sie das Kontrollkästchen „Abfrage manuell bearbeiten“ – hier geschieht die Magie. Ersetzen Sie den XPath durch einen benutzerdefinierten Filter wie zum Beispiel:
<QueryList> <Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational"> <Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and Task=102]]</Select> </Query> </QueryList> - Verfeinern Sie es nun weiter, indem Sie prüfen, ob es speziell für Ihre Ping-Aufgabe gilt. Suchen Sie die Zeile mit EventData und ersetzen Sie sie durch:
*[EventData [@Name='TaskSuccessEvent'][Data[@Name='TaskName']='\\MyTasks\\Ping']]
Speichern Sie Ihren Filter, sobald Sie fertig sind. Wichtig ist, den Trigger basierend auf diesem benutzerdefinierten Filter so einzurichten, dass Ihr „Pong“-Skript nur ausgeführt wird, wenn die „Ping“-Aufgabe erfolgreich abgeschlossen wurde.
Testen Sie Ihre Konfiguration
Führen Sie den Ping-Task manuell aus oder lassen Sie ihn automatisch starten. Prüfen Sie, ob der Pong-Task unmittelbar danach ausgelöst wird – allerdings nur, wenn der richtige Task abgeschlossen ist. Seltsamerweise benötigt es manchmal mehrere Versuche oder einen Neustart, bis alles perfekt synchronisiert ist, insbesondere wenn die Ereignisanzeige längere Zeit deaktiviert war. Geduld ist gefragt!
Sobald dies eingerichtet ist, kann Windows Aufgaben sinnvoll verketten – beispielsweise ein Bereinigungs- oder Sicherungsskript erst ausführen, nachdem der Hauptvorgang erfolgreich abgeschlossen wurde. Mit diesem Trick kann Windows im Hintergrund deutlich mehr erledigen, als den meisten Nutzern bewusst ist, vorausgesetzt, die entsprechenden Filter sind konfiguriert.
Zusammenfassung
- Aktivieren Sie das Ereignisprotokoll für die Aufgabenplanung.
- Suchen Sie das Ereignis „Aufgabenabschluss“ (ID 102) für Ihre spezifische Aufgabe.
- Verwenden Sie benutzerdefinierte XML-Filter, um nur die Ereignisse zu erfassen, die für Sie relevant sind.
- Richten Sie für die zweite Aufgabe einen Trigger ein, der auf diesem Filter basiert.
Zusammenfassung
So funktioniert es im Prinzip – nicht ganz einfach, aber sobald der Filter richtig eingestellt ist, läuft er einwandfrei. Keine versehentlichen Auslöser mehr, sondern saubere, sequenzielle Aufgabenausführungen. Behalte die Protokolle im Auge, falls etwas Ungewöhnliches passiert; Windows neigt dazu, Dinge einfacher erscheinen zu lassen, als sie sind. Ich drücke die Daumen, dass es hilft, und viel Spaß beim Automatisieren!