Windows Aufgabenplanung

6 Kernkonzepte
Die wichtigsten Befehle und Tools für die Windows Aufgabenplanung: taskschd.msc · schtasks · Get-ScheduledTask · New-ScheduledTask · Triggers · Actions Die Aufgabenplanung (Task Scheduler) automatisiert wiederkehrende Aufgaben – von einfachen Skripten bis zu komplexen Systemwartungen.

taskschd.msc – Aufgabenplanung grafisch öffnen

Win+R → taskschd.msc
Win + R"taskschd.msc"Enter

taskschd.msc öffnet die grafische Aufgabenplanung – das zentrale Tool zum Erstellen, Verwalten und Überwachen von geplanten Aufgaben.

Öffnungsmöglichkeiten

Methode Beschreibung
Win + R → taskschd.msc Schnellster Weg (Run-Dialog)
Systemsteuerung → Verwaltung Über die Systemsteuerung
Rechtsklick "Dieser PC" → Verwalten Über die Computerverwaltung
cmd → taskschd.msc Aus der Eingabeaufforderung
Beispiele
# Run-Dialog
Win + R"taskschd.msc"Enter
# Über Computerverwaltung
Win + R"compmgmt.msc"Aufgabenplanung (links)
Tipp: In der Aufgabenplanung finden Sie unter "Aufgabenplanungsbibliothek" alle benutzerdefinierten und Systemaufgaben. Die Ordnerstruktur hilft bei der Organisation.

schtasks – Aufgaben über die Kommandozeile verwalten

schtasks /query · /create · /change · /delete
schtasks /query /tn "MeineAufgabe" schtasks /create /tn "Backup" /tr "C:\Scripts\backup.bat" /sc daily /st 02:00

schtasks ist das Kommandozeilen-Tool für die Aufgabenplanung – ideal für Skripte, Remote-Verwaltung und Automatisierung.

Wichtige schtasks-Befehle

Befehl Beschreibung
/query Alle Aufgaben oder eine bestimmte Aufgabe anzeigen
/create Neue Aufgabe erstellen
/change Vorhandene Aufgabe ändern
/delete Aufgabe löschen
/run Aufgabe sofort ausführen
/end Laufende Aufgabe beenden
/tn Name der Aufgabe (Task Name)
/tr Programm/Skript, das ausgeführt wird (Task Run)
/sc Zeitplan (Schedule): daily, weekly, monthly, onstart, onlogin
/st Startzeit (Start Time)
Beispiele
# Alle Aufgaben anzeigen
schtasks /query
# Aufgabe erstellen (täglich um 2 Uhr)
schtasks /create /tn "MeinBackup" /tr "C:\backup.cmd" /sc daily /st 02:00
# Aufgabe mit höchsten Privilegien erstellen
schtasks /create /tn "Systemwartung" /tr "C:\Scripts\maintenance.ps1" /sc weekly /d SUN /st 03:00 /ru SYSTEM /rl HIGHEST
# Aufgabe sofort ausführen
schtasks /run /tn "MeinBackup"
# Aufgabe löschen
schtasks /delete /tn "MeinBackup" /f
Tipp: Mit /ru SYSTEM und /rl HIGHEST führen Sie die Aufgabe mit Systemrechten und höchsten Berechtigungen aus – wichtig für Wartungsaufgaben.

PowerShell – Aufgaben mit Cmdlets verwalten

Get-ScheduledTask · Register-ScheduledTask · Unregister-ScheduledTask
Get-ScheduledTask -TaskName "MeineAufgabe" Register-ScheduledTask -TaskName "Backup" -Action $Action -Trigger $Trigger

PowerShell bietet moderne, objektorientierte Cmdlets für die Aufgabenplanung – ideal für komplexe Automatisierungen und Skripte.

Wichtige Task-Cmdlets

Cmdlet Beschreibung
Get-ScheduledTask Vorhandene Aufgaben abrufen
Register-ScheduledTask Neue Aufgabe registrieren (erstellen)
Unregister-ScheduledTask Aufgabe löschen
Start-ScheduledTask Aufgabe sofort starten
Stop-ScheduledTask Laufende Aufgabe stoppen
Enable-ScheduledTask Aufgabe aktivieren
Disable-ScheduledTask Aufgabe deaktivieren
Set-ScheduledTask Aufgabe ändern (konfigurieren)
New-ScheduledTaskAction Action-Objekt für Aufgabe erstellen
New-ScheduledTaskTrigger Trigger-Objekt für Aufgabe erstellen
Beispiele
# Alle Aufgaben anzeigen
Get-ScheduledTask
# Aufgabe mit PowerShell-Skript erstellen (täglich 2:00 Uhr)
$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\Scripts\backup.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At "02:00"
Register-ScheduledTask -TaskName "Backup" -Action $Action -Trigger $Trigger -User "SYSTEM" -RunLevel "Highest"
# Aufgabe deaktivieren
Disable-ScheduledTask -TaskName "Backup"
# Aufgabe löschen
Unregister-ScheduledTask -TaskName "Backup" -Confirm $false
Tipp: PowerShell-Cmdlets arbeiten mit Objekten – Sie können die Ausgabe von Get-ScheduledTask filtern, sortieren oder in andere Formate exportieren.

Trigger – Zeitpläne und Ereignisse

/sc · Daily · Weekly · AtStartup · OnEvent
# schtasks schtasks /create /tn "Aufgabe" /sc daily /st 02:00 # PowerShell New-ScheduledTaskTrigger -Daily -At "02:00"

Trigger bestimmen, wann eine Aufgabe ausgeführt wird – zeitbasiert oder ereignisbasiert.

Trigger-Typen

Trigger schtasks /sc PowerShell Beschreibung
Täglich daily -Daily Jeden Tag zur angegebenen Zeit
Wöchentlich weekly -Weekly An bestimmten Wochentagen
Monatlich monthly -Monthly An bestimmten Tagen im Monat
Beim Systemstart onstart -AtStartup Bei jedem Systemstart
Bei Anmeldung onlogon -AtLogOn Bei Benutzeranmeldung
Bei Leerlauf onidle -AtIdle Wenn System im Leerlauf ist
Einmalig once -Once Einmalige Ausführung
Ereignisgesteuert event -Event Bei bestimmten Ereignissen in der Ereignisanzeige
Beispiele
# schtasks: Wöchentlich jeden Sonntag um 3 Uhr
schtasks /create /tn "Wartung" /tr "C:\Scripts\wartung.cmd" /sc weekly /d SUN /st 03:00
# PowerShell: Monatlich am 1. Tag um 4 Uhr
$Trigger = New-ScheduledTaskTrigger -Monthly -Day 1 -At "04:00"
# PowerShell: Beim Systemstart
$Trigger = New-ScheduledTaskTrigger -AtStartup
Tipp: Kombinieren Sie mehrere Trigger für eine Aufgabe – z.B. täglich und beim Systemstart, um redundante Ausführungen zu vermeiden.

Actions – Programm, Skript oder E-Mail

/tr · -Execute · -Argument · -Email
# schtasks schtasks /create /tn "Aufgabe" /tr "C:\Programme\app.exe" # PowerShell New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File script.ps1"

Actions definieren, was ausgeführt wird – ein Programm, ein PowerShell-Skript, ein Batch-Befehl oder eine E-Mail.

Action-Typen

Action schtasks /tr PowerShell Beschreibung
Programm ausführen "C:\app.exe" -Execute "app.exe" Führt eine ausführbare Datei aus
PowerShell-Skript "powershell.exe -File script.ps1" -Execute "powershell.exe" -Argument "-File script.ps1" Führt ein PowerShell-Skript aus
Batch/CMD-Befehl "cmd.exe /c backup.cmd" -Execute "cmd.exe" -Argument "/c backup.cmd" Führt einen CMD-Befehl aus
E-Mail senden Nur über GUI Nur über GUI Sendet eine E-Mail (veraltet)
Nachricht anzeigen Nur über GUI Nur über GUI Zeigt ein Meldungsfenster an
Beispiele
# schtasks: PowerShell-Skript ausführen
schtasks /create /tn "Bericht" /tr "powershell.exe -ExecutionPolicy Bypass -File C:\Scripts\report.ps1" /sc daily /st 08:00
# PowerShell: Programm mit Argumenten
$Action = New-ScheduledTaskAction -Execute "C:\Tools\backup.exe" -Argument "-full -output C:\Backup"
# PowerShell: Mehrere Actions (z.B. Backup + Logging)
$Action1 = New-ScheduledTaskAction -Execute "C:\backup.ps1"
$Action2 = New-ScheduledTaskAction -Execute "C:\log.cmd"
Register-ScheduledTask -TaskName "BackupMitLog" -Action $Action1, $Action2 # werden nacheinander ausgeführt
Tipp: Bei PowerShell-Skripten sollten Sie -ExecutionPolicy Bypass hinzufügen, um die Ausführung zu ermöglichen – oder die ExecutionPolicy global konfigurieren.

Fehlerbehebung – Typische Probleme lösen

Letzte Ausführung · Ergebniscode · Ereignisanzeige
schtasks /query /tn "Aufgabe" /v Get-ScheduledTask -TaskName "Aufgabe" | Get-ScheduledTaskInfo

Fehlerbehebung – überprüfen Sie den Status, die letzte Ausführung und Ergebniscodes von Aufgaben.

Beispiele
# schtasks: Detaillierte Informationen einer Aufgabe
schtasks /query /tn "MeineAufgabe" /v | findstr "Last Result"
# PowerShell: Letzte Ausführungsinformationen
Get-ScheduledTask -TaskName "MeineAufgabe" | Get-ScheduledTaskInfo | Select-Object LastRunTime, LastTaskResult, NumberOfMissedRuns
# PowerShell: Alle fehlgeschlagenen Aufgaben finden
Get-ScheduledTask | ForEach-Object { $info = $_ | Get-ScheduledTaskInfo; if ($info.LastTaskResult -ne 0) { $_ } } | Select-Object TaskName,State
# Ereignisanzeige: Aufgabenplanung-Logs
eventvwr.mscWindows-Protokolle → SystemQuelle: "TaskScheduler"
# PowerShell: TaskScheduler-Ereignisse anzeigen
Get-WinEvent -LogName "System" -FilterXPath "*[System[Provider[@Name='Microsoft-Windows-TaskScheduler']]]" | Select-Object TimeCreated, Message -First 10
Tipp: Der Letzte Ergebniscode (LastTaskResult) zeigt 0 für erfolgreiche Ausführung. Ein anderer Wert deutet auf einen Fehler hin – dann prüfen Sie die Ereignisanzeige auf Details.

Windows Aufgabenplanung im Überblick

taskschd.msc GUI öffnen
Win+R → taskschd.msc
schtasks CLI-Befehle
/create, /query, /delete
PowerShell Get/Register-ScheduledTask
Objektorientierte Cmdlets
Trigger Wann?
Daily, Weekly, AtStartup
Actions Was?
Programm, Skript, E-Mail
Ergebniscode 0 = Erfolg
Fehler in Ereignisanzeige prüfen

Quick Summary

taskschd.msc
GUI öffnen
schtasks
CLI-Befehle
Get-ScheduledTask
PowerShell
/sc daily
Trigger
/tr
Actions
LastTaskResult
Fehlerbehebung
schtasks /create /tn "Backup" /tr "script.ps1" /sc daily /st 02:00 · Get-ScheduledTask -TaskName "Backup"