Zurück zu PowerShell
Aufgabenplanung per PowerShell
Geplante Aufgaben erstellen, verwalten und automatisieren — ohne GUI.
Geplante Aufgaben anzeigen
# Alle Aufgaben auflisten
Get-ScheduledTask | Format-Table TaskName, State, TaskPath
# Bestimmte Aufgabe suchen
Get-ScheduledTask -TaskName "*backup*"
# Details einer Aufgabe
Get-ScheduledTask -TaskName "MeinBackup" | Get-ScheduledTaskInfo
Neue Aufgabe erstellen
# 1. Trigger definieren (wann?)
$trigger = New-ScheduledTaskTrigger -Daily -At "06:00"
# 2. Aktion definieren (was?)
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
-Argument "-File C:\Scripts\Backup.ps1 -NoProfile -ExecutionPolicy Bypass"
# 3. Aufgabe registrieren
Register-ScheduledTask -TaskName "TaeglichesBackup" `
-Trigger $trigger -Action $action `
-Description "Fuehrt das Backup-Skript taeglich um 6 Uhr aus" `
-RunLevel Highest
Weitere Trigger-Beispiele
# Beim Systemstart
$trigger = New-ScheduledTaskTrigger -AtStartup
# Woechentlich (Mo, Mi, Fr)
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday,Wednesday,Friday -At "08:00"
# Bei Anmeldung
$trigger = New-ScheduledTaskTrigger -AtLogOn
Aufgaben steuern
# Aufgabe manuell starten
Start-ScheduledTask -TaskName "TaeglichesBackup"
# Aufgabe deaktivieren / aktivieren
Disable-ScheduledTask -TaskName "TaeglichesBackup"
Enable-ScheduledTask -TaskName "TaeglichesBackup"
# Aufgabe loeschen
Unregister-ScheduledTask -TaskName "TaeglichesBackup" -Confirm:$false
Praxis: Tägliches Temp-Cleanup
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument @"
-NoProfile -Command "Get-ChildItem $env:TEMP -Recurse -File |
Where-Object LastWriteTime -lt (Get-Date).AddDays(-7) |
Remove-Item -Force -ErrorAction SilentlyContinue"
"@
$trigger = New-ScheduledTaskTrigger -Daily -At "03:00"
Register-ScheduledTask -TaskName "TempCleanup" -Action $action -Trigger $trigger -RunLevel Highest
Tipp: Mit -RunLevel Highest läuft die Aufgabe mit erhöhten Rechten. Teste Skripte immer erst manuell, bevor du sie automatisierst.