Die Windows-Aufgabenplanung (Task Scheduler) ist ein mächtiges Werkzeug, um Routineaufgaben zu automatisieren. Sie kann Programme zu bestimmten Zeiten starten, bei Systemereignissen reagieren oder sogar bei Benutzeranmeldung aktiv werden. Doch was, wenn Sie eine Aufgabe starten möchten, *genau dann, wenn eine bestimmte Anwendung beendet wird* – sei es ein geplanter Exit oder ein unerwarteter Absturz? Die meisten Benutzer suchen vergeblich nach einem direkten Trigger wie „Beim Beenden einer Anwendung”. Hier kommt der „geheime Trigger” ins Spiel, eine fortschrittliche Methode, die tief in den Windows-Ereignisprotokollen verwurzelt ist.
### Der Mythos vom fehlenden Trigger: Warum es nicht offensichtlich ist
Oberflächlich betrachtet bietet die Aufgabenplanung keinen direkten Trigger, der auf das Beenden eines Prozesses reagiert. Man kann zwar Aufgaben erstellen, die beim Start eines Programms aktiv werden oder auf spezifische Ereignisse im Anwendungs- oder Systemprotokoll reagieren. Aber ein dedizierter „Anwendung beendet”-Trigger fehlt. Dies führt oft zu Frustration und der Annahme, dass eine solche Automatisierung nicht möglich ist, ohne auf komplexere Skripte oder Drittanbieter-Tools zurückzugreifen. Doch Windows bietet die notwendigen Informationen – sie sind nur gut versteckt.
### Der „geheime Trigger” enthüllt: Prozessbeendigung im Sicherheitsprotokoll
Das Geheimnis liegt in den **Windows-Ereignisprotokollen**, insbesondere im **Sicherheitsprotokoll**. Während das Anwendungs- und Systemprotokoll eine Fülle von Informationen über Programmereignisse und Systemzustände liefern, ist das Sicherheitsprotokoll die Heimat von Überwachungsinformationen, die standardmäßig nicht immer vollständig aktiviert sind. Eine dieser Informationen ist die Protokollierung der **Prozessbeendigung**. Jedes Mal, wenn ein Prozess auf Ihrem System startet oder endet, kann Windows dies protokollieren. Und genau diese Protokolleinträge können wir als Trigger für unsere Aufgabenplanung nutzen.
Das spezifische Ereignis, das wir suchen, ist die **Ereignis-ID 4689**, die für „Ein Prozess wurde beendet” steht. Dieses Ereignis wird im **Sicherheitsprotokoll** aufgezeichnet und enthält Details zum beendeten Prozess, einschließlich seines Namens und Pfads. Um dieses Ereignis zu erfassen, müssen wir jedoch zuerst sicherstellen, dass die entsprechende Überwachungsrichtlinie auf Ihrem System aktiviert ist.
### Warum dieser „geheime Trigger” so nützlich ist: Praktische Anwendungsfälle
Die Möglichkeit, eine Aufgabe beim Beenden einer Anwendung auszuführen, eröffnet eine Vielzahl von Automatisierungsmöglichkeiten, die Ihre Produktivität und Systemverwaltung erheblich verbessern können:
* **Automatische Datenbereinigung**: Nach dem Beenden eines Spiels, eines Videobearbeitungsprogramms oder einer CAD-Software können temporäre Dateien, Cache-Ordner oder Logfiles automatisch gelöscht werden. Das spart Speicherplatz und hält Ihr System aufgeräumt.
* **Sicherung und Synchronisation**: Beenden Sie eine wichtige Arbeitsanwendung wie eine Textverarbeitung, ein Entwicklungsumgebung oder ein Grafikprogramm? Die Aufgabenplanung kann sofort eine Sicherung Ihrer Projektdateien erstellen oder diese mit einem Cloud-Speicher synchronisieren.
* **Systemwartung nach dem Spielen**: Starten Sie nach dem Beenden eines ressourcenintensiven Spiels automatisch eine Systemoptimierung, defragmentieren Sie Laufwerke oder überprüfen Sie auf Updates.
* **Benachrichtigungen und Protokollierung**: Informieren Sie sich per E-Mail oder über ein Protokoll, wenn eine kritische Anwendung beendet wurde – insbesondere, wenn es sich um einen Absturz handelte.
* **Rücksetzen von Systemeinstellungen**: Setzen Sie bestimmte Systemeinstellungen (z.B. Bildschirmauflösung, Audioausgabe), die von einer Anwendung geändert wurden, beim Beenden wieder auf ihre Standardwerte zurück.
### Voraussetzungen: Prozessbeendigungsüberwachung aktivieren
Bevor wir die Aufgabe in der Aufgabenplanung erstellen können, müssen wir die **Überwachung der Prozessbeendigung** aktivieren. Dies geschieht über die lokalen Sicherheitsrichtlinien. Beachten Sie, dass dies Administratorrechte erfordert.
1. **Lokale Sicherheitsrichtlinie öffnen**:
* Drücken Sie `Win + R`, geben Sie `secpol.msc` ein und drücken Sie Enter.
* Alternativ suchen Sie im Startmenü nach „Lokale Sicherheitsrichtlinie”.
2. **Navigieren zur Überwachungsrichtlinie**:
* Im linken Bereich navigieren Sie zu `Sicherheitseinstellungen` -> `Lokale Richtlinien` -> `Überwachungsrichtlinie`.
3. **”Prozessverfolgung überwachen” aktivieren**:
* Suchen Sie im rechten Bereich nach dem Eintrag „**Prozessverfolgung überwachen**”.
* Doppelklicken Sie darauf.
* Aktivieren Sie die Kontrollkästchen für `Erfolg` und `Fehler`. Dies stellt sicher, dass sowohl erfolgreiche Prozessbeendigungen als auch fehlgeschlagene Versuche (z.B. aufgrund von Abstürzen) protokolliert werden.
* Klicken Sie auf `Übernehmen` und dann auf `OK`.
4. **Gruppenrichtlinie aktualisieren (optional, aber empfohlen)**:
* Öffnen Sie die Eingabeaufforderung als Administrator (suchen Sie im Startmenü nach „cmd”, Rechtsklick -> „Als Administrator ausführen”).
* Geben Sie `gpupdate /force` ein und drücken Sie Enter. Dies erzwingt die sofortige Anwendung der neuen Richtlinien.
Von nun an wird Windows jede Prozessbeendigung (und jeden Prozessstart) im **Sicherheitsprotokoll** aufzeichnen. Diese Informationen sind der Schlüssel zu unserem geheimen Trigger.
### Schritt-für-Schritt-Anleitung: Aufgabe in der Aufgabenplanung erstellen
Jetzt, da die Überwachung aktiviert ist, können wir die Aufgabe konfigurieren.
1. **Aufgabenplanung öffnen**:
* Suchen Sie im Startmenü nach „Aufgabenplanung” und öffnen Sie sie.
2. **Neue Aufgabe erstellen**:
* Klicken Sie im rechten Bereich unter „Aktionen” auf `Aufgabe erstellen…`.
3. **Registerkarte „Allgemein”**:
* **Name**: Geben Sie einen aussagekräftigen Namen ein, z.B. „Beim Beenden von Chrome: Cache leeren” oder „Sicherung nach Abschluss von Photoshop”.
* **Beschreibung**: Fügen Sie eine kurze Beschreibung hinzu, was die Aufgabe bewirkt.
* **Benutzerkonto**: Wählen Sie das Benutzerkonto aus, unter dem die Aufgabe ausgeführt werden soll. Für die meisten Automatisierungen ist Ihr aktuelles Benutzerkonto ausreichend. Stellen Sie sicher, dass „Nur ausführen, wenn der Benutzer angemeldet ist” oder „Unabhängig von Benutzeranmeldung ausführen” ausgewählt ist, je nach Bedarf. Für Aufgaben, die administrative Berechtigungen erfordern oder im Hintergrund laufen sollen, wählen Sie „Unabhängig von Benutzeranmeldung ausführen” und aktivieren Sie **”Mit höchsten Berechtigungen ausführen”**.
* **Konfigurieren für**: Wählen Sie Ihre aktuelle Windows-Version aus.
4. **Registerkarte „Trigger”**:
* Klicken Sie auf `Neu…`.
* **Aufgabe starten**: Wählen Sie aus dem Dropdown-Menü `Bei einem Ereignis`.
* **Protokoll**: Wählen Sie `Security` (Sicherheit).
* **Quelle**: Wählen Sie `Microsoft-Windows-Security-Auditing`.
* **Ereignis-ID**: Geben Sie `4689` ein.
* **Aktiviert**: Stellen Sie sicher, dass dieses Kontrollkästchen aktiviert ist.
* **Den Trigger für eine spezifische Anwendung filtern (der Schlüssel!)**:
Das Ereignis 4689 wird für *jeden* beendeten Prozess ausgelöst. Wir müssen es auf unsere Zielanwendung eingrenzen. Dazu verwenden wir **XPath-Abfragen**.
* Aktivieren Sie das Kontrollkästchen `Ereignis-ID` und geben Sie `4689` ein.
* Aktivieren Sie nun das Kontrollkästchen `Benutzerdefinierte Ereigniseigenschaften filtern`.
* Klicken Sie auf `Neues Ereignisfilter…`.
* Wechseln Sie zum Tab `XML`.
* Aktivieren Sie das Kontrollkästchen `Manuelle Abfrage bearbeiten`.
* Sie sehen nun einen Basis-XML-Code. Diesen müssen Sie erweitern.
**So finden Sie den richtigen Pfad und Dateinamen der Anwendung:**
* Starten Sie die Anwendung, die Sie überwachen möchten.
* Beenden Sie sie sofort wieder.
* Öffnen Sie die **Ereignisanzeige** (Suchen Sie im Startmenü nach „Ereignisanzeige”).
* Navigieren Sie zu `Windows-Protokolle` -> `Sicherheit`.
* Suchen Sie nach einem Eintrag mit der **Ereignis-ID 4689**, der ungefähr zu dem Zeitpunkt erstellt wurde, als Sie die Anwendung beendet haben.
* Doppelklicken Sie auf den Eintrag und wechseln Sie zum Tab `Details`.
* Klicken Sie auf `XML-Ansicht`.
* Suchen Sie im XML-Code nach dem „-Tag. Der Wert darin ist der vollständige Pfad zur ausführbaren Datei (z.B. `C:Program FilesGoogleChromeApplicationchrome.exe`). Notieren Sie sich diesen genauen Pfad.
**Die XPath-Abfrage für den Trigger:**
Ersetzen Sie den vorhandenen XML-Code mit folgendem, wobei Sie `C:PathToYourApp.exe` durch den tatsächlichen Pfad Ihrer Anwendung ersetzen:
„`xml
*[System[(EventID=4689)]]
and
*[EventData[Data[@Name=’ProcessName’]=’C:PathToYourApp.exe’]]
„`
**Wichtig**: Achten Sie darauf, dass der Pfad *exakt* mit dem im Ereignisprotokoll übereinstimmt, einschließlich Groß-/Kleinschreibung und Backslashes.
* Klicken Sie auf `OK`, um das Filterfenster zu schließen.
* Klicken Sie erneut auf `OK`, um den Trigger zu speichern.
5. **Registerkarte „Aktionen”**:
* Klicken Sie auf `Neu…`.
* **Aktion**: Wählen Sie `Programm starten`.
* **Programm/Skript**: Geben Sie den Pfad zu der ausführbaren Datei, dem Skript (z.B. `.bat`, `.cmd`, `.ps1`) oder dem Befehl ein, der ausgeführt werden soll, wenn Ihre Zielanwendung beendet wird.
* Beispiel für eine Batch-Datei: `C:Scriptscleanup.bat`
* Beispiel für PowerShell: `powershell.exe` und unter `Argumente hinzufügen (optional)`: `-ExecutionPolicy Bypass -File C:Scriptscleanup.ps1`
* Beispiel für einen direkten Befehl: `cmd.exe` und unter `Argumente hinzufügen (optional)`: `/c „del C:Temp*.tmp”`
* **Starten in (optional)**: Geben Sie das Arbeitsverzeichnis für das Programm/Skript an.
* Klicken Sie auf `OK`.
6. **Registerkarte „Bedingungen” (optional)**:
* Hier können Sie zusätzliche Bedingungen festlegen, z.B. dass die Aufgabe nur ausgeführt wird, wenn der Computer am Netzstrom angeschlossen ist oder eine bestimmte Netzwerkverbindung besteht.
7. **Registerkarte „Einstellungen” (optional)**:
* **Aufgabe bei Bedarf ausführen**: Standardmäßig aktiviert.
* **Aufgabe anhalten, falls sie länger als […] ausgeführt wird**: Nützlich, um blockierte Aufgaben zu vermeiden.
* **Vorhandene Instanz beenden, falls die Aufgabe wiederholt ausgeführt werden soll**: Wählen Sie, wie mit mehreren Instanzen der Aufgabe umgegangen werden soll, falls der Trigger mehrfach schnell hintereinander ausgelöst wird. Für die meisten Szenarien ist `Neue Instanz nicht starten` oder `Vorhandene Instanz anhalten` sinnvoll.
8. **Aufgabe abschließen**:
* Klicken Sie auf `OK`, um die gesamte Aufgabe zu speichern. Möglicherweise müssen Sie Ihr Kennwort eingeben, wenn Sie die Option „Unabhängig von Benutzeranmeldung ausführen” gewählt haben.
### Testen Sie Ihre neue Aufgabe
Es ist entscheidend, Ihre neu erstellte Aufgabe zu testen:
1. Stellen Sie sicher, dass Ihre Anwendung nicht läuft.
2. Starten Sie die Anwendung, die den Trigger auslösen soll.
3. Beenden Sie die Anwendung.
4. Überprüfen Sie, ob die von Ihnen konfigurierte Aktion ausgeführt wurde.
5. Sie können auch in der Aufgabenplanung unter `Aufgabenplanungsbibliothek` Ihre Aufgabe suchen und den `Status` oder `Letzte Ausführungszeit` überprüfen. Im Sicherheitsprotokoll der Ereignisanzeige sollten Sie die Ereignis-ID 4689 für Ihre Anwendung sehen.
### Wichtige Überlegungen und Einschränkungen
* **Performance-Auswirkungen der Überwachung**: Das Aktivieren der `Prozessverfolgung überwachen` kann die Größe Ihres Sicherheitsprotokolls erhöhen und in extremen Fällen einen geringfügigen Leistungsaufwand verursachen. Für die meisten Heim- oder Büro-PCs ist dies jedoch vernachlässigbar. Stellen Sie sicher, dass Ihr Sicherheitsprotokoll so konfiguriert ist, dass es bei Bedarf alte Ereignisse überschreibt.
* **Exakter Pfad**: Die XPath-Abfrage benötigt den *exakten* Pfad zur ausführbaren Datei. Wenn die Anwendung aktualisiert wird und sich der Pfad ändert (z.B. Versionsnummer im Pfad), müssen Sie den Trigger anpassen.
* **Admin-Rechte**: Die Einrichtung der Prozessüberwachung und das Erstellen von Aufgaben mit höchsten Berechtigungen erfordert Administratorrechte.
* **Skript-Fehlerbehandlung**: Wenn Ihre Aktion ein Skript ist, stellen Sie sicher, dass es robust ist und mögliche Fehler sauber behandelt, um unerwartetes Verhalten zu vermeiden.
* **Universelle Anwendbarkeit**: Die Methode funktioniert für nahezu jede Anwendung, deren Beendigung ein Ereignis 4689 auslöst.
### Fazit
Die Windows-Aufgabenplanung in Kombination mit einer geschickten Nutzung der Ereignisprotokolle ist ein unglaublich mächtiges Werkzeug zur Automatisierung. Obwohl Windows keinen direkten „Anwendung beendet”-Trigger anbietet, können wir durch die Aktivierung der Prozessbeendigungsüberwachung im Sicherheitsprotokoll und die Verwendung von **Ereignis-ID 4689** in einem benutzerdefinierten XPath-Filter eine robuste Lösung schaffen. Dieser „geheime Trigger” eröffnet völlig neue Möglichkeiten für Systemverwaltung, Datenbereinigung und intelligente Workflow-Automatisierung. Mit ein wenig Detektivarbeit in der Ereignisanzeige und präzisen XPath-Abfragen können Sie Ihr System genau so konfigurieren, wie Sie es sich wünschen – und das alles mit den Bordmitteln von Windows. Probieren Sie es aus und entfesseln Sie das volle Potenzial Ihrer Aufgabenplanung!