
In diesem Tutorial zeigen wir Ihnen, wie Sie unter Windows ein PowerShell-Skript mithilfe einer geplanten Aufgabe ausführen.
Diese Methode ermöglicht die Automatisierung gängiger Aktionen wie Dateisicherung, Protokollbereinigung oder die Bereitstellung administrativer Skripte ohne manuelles Eingreifen.
Wir werden Schritt für Schritt sehen, wie man die geplante Aufgabe über die grafische Benutzeroberfläche von Windows sowie über die Befehlszeilenmethode mit PowerShell erstellt.
Dieser Leitfaden gilt sowohl für Windows 10 / 11 als auch für Windows Server (2016, 2019, 2022 und 2025).
Inhaltsverzeichnis
Warum sollte man ein PowerShell-Skript mit einer geplanten Aufgabe ausführen?
PowerShell ist eine leistungsstarke Sprache zur Automatisierung der Administration von Windows-Systemen.
In Kombination mit dem Aufgabenplaner wird es möglich, Skripte automatisch und ohne manuelles Eingreifen zu bestimmten Zeiten oder ereignisabhängig auszuführen.
Ein paar häufige Anwendungsfälle :
- Wiederkehrende Aufgaben automatisieren
- Führen Sie geplante Sicherungen durch
- Server überwachen und warten
- Konfigurationen bereitstellen oder aktualisieren
- Führe Aktionen auch dann aus, wenn niemand verbunden ist.
Zusammenfassend lässt sich sagen, dass eine geplante PowerShell-Aufgabe eine Eine hervorragende Möglichkeit, die Zuverlässigkeit von Windows-Operationen zu automatisieren und zu verbessern. unter Vermeidung von Versäumnissen und manuellen Eingriffen.
Voraussetzungen
Bevor Sie die geplante Aufgabe erstellen, stellen Sie sicher, dass Sie die folgenden Bedingungen erfüllen:
- Sie benötigen ein gültiges PowerShell-Skript – die Datei muss folgendes Format haben:
.ps1gespeichert unter einem zugänglichen Pfad (Beispiel:C:\Scripts\Maintenance.ps1). - Administratorrechte erforderlich – Für die Erstellung oder Ausführung einer geplanten Aufgabe mit erhöhten Berechtigungen ist ein Konto mit Administratorrechten auf dem Rechner erforderlich.
- Verwenden Sie vollständige Pfade – Geben Sie bei der Konfiguration immer den vollständigen Pfad zum Skript und Programm an (
powershell.exe) um Kontextfehler zu vermeiden. - Überprüfen Sie die PowerShell-Ausführungsrichtlinie – standardmäßig blockiert Windows möglicherweise nicht signierte Skripte.
Überprüfen Sie die aktuelle Konfiguration:
Get-ExecutionPolicyÄndern Sie die Konfiguration gegebenenfalls (mit Vorsicht):
Set-ExecutionPolicyRemoteSignedTesten Sie das Skript manuell – Bevor Sie es in eine geplante Aufgabe integrieren, führen Sie es einmal in einer PowerShell-Konsole aus, um zu überprüfen, ob es korrekt funktioniert:
powershell.exe -NoProfile -File "C:\Scripts\Maintenance.ps1"Diese Prüfungen helfen Ihnen, die häufigsten Fehler beim Erstellen oder Ausführen der Aufgabe zu vermeiden.
Um dieses Tutorial zu veranschaulichen, werden wir die Datei ausführen. CleanTemp.ps1 der sich im Ordner befindet C:\Skripte.

Hier ist der Inhalt der Datei:
# Temporäre Windows-Dateien bereinigen
$TempPath = "$env:TEMP"
$Date = Get-Date -Format "dd/MM/yyyy HH:mm:ss"
$LogFile = "C:\Logs\CleanTemp.log"
Remove-Item -Path "$TempPath\*" -Recurse -Force -ErrorAction SilentlyContinue
Das Skript löscht einfach die Elemente aus dem Windows-Temp-Ordner und schreibt in eine Protokolldatei.
Methode 1: Erstellen einer geplanten Aufgabe über die grafische Benutzeroberfläche
Öffnen Sie über das Startmenü die Windows-Aufgabenplanung.

Klicken Sie im Aufgabenplaner auf „Aufgabe erstellen 1“.

Auf der Registerkarte „Allgemein“ beginnen Sie mit der Benennung der Aufgabe 1, ändern den Benutzer, der die Aufgabe ausführt, indem Sie das Systemkonto auswählen 2, und aktivieren das Kontrollkästchen: Mit maximalen Berechtigungen ausführen 3.

Auf der Registerkarte „Trigger“ fügen wir die Zeitpläne hinzu. Klicken Sie dazu auf die Schaltfläche „Neu 1“.

Konfigurieren Sie den Zeitplan 1 (hier jeden Tag um 3 Uhr morgens), setzen Sie ein Häkchen bei: Aktiviert 2 und klicken Sie auf OK 3.

Planung wird hinzugefügt.

Wechseln Sie zur Registerkarte „Aktionen“. Hier konfigurieren wir die Ausführung des PowerShell-Skripts. Klicken Sie dazu auf die Schaltfläche „Neu 1“.

Wir konfigurieren nun die Ausführung des PowerShell-Skripts. Belassen Sie die Standardaktion „Programm starten“. Geben Sie im Feld „Programm/Skript“ Folgendes ein: powershell.exe 1, geben Sie dann im Feld „Argumente hinzufügen (optional)“ Folgendes ein: -Datei "C:\Pfad\script.ps1" 2 und klicken Sie auf OK 3.

Im Feld „Programm/Skript“ können Sie den Pfad zur PowerShell-Programmdatei eingeben:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exeoder um den Pfad zu PowerShell Core anzugeben, falls es installiert ist:C:\Program Files\PowerShell\7\pwsh.exeFür das Argumentfeld können wir Folgendes hinzufügen:
-NoProfile -ExecutionPolicy BypassDadurch kann das Skript ausgeführt werden, ohne dass ein Benutzerprofil geladen werden muss, und die Ausführungsbeschränkungen von PowerShell-Skripten können vorübergehend ignoriert werden.
Die Aktion, die die Ausführung des Skripts ermöglicht, wird hinzugefügt. Klicken Sie auf OK 1, um die geplante Aufgabe zu erstellen.

Die geplante Aufgabe wurde hinzugefügt.

Testen Sie die Ausführung des PowerShell-Skripts
Es ist möglich, die geplante Aufgabe zu testen, ohne auf deren Auslösung zu warten; klicken Sie dazu mit der rechten Maustaste darauf und wählen Sie Ausführen 1.

Um die ordnungsgemäße Ausführung zu überprüfen, prüfe ich, ob die Protokolldatei vorhanden ist, was der Fall ist, wie unten ersichtlich.

Methode 2: Erstellen einer geplanten Aufgabe mit PowerShell
Es ist auch möglich, den geplanten Task mithilfe von PowerShell zu erstellen; dazu verwenden wir 3 Variablen:
- $Action: Dies enthält die Aufgabenaktion, also die Ausführung des PowerShell-Skripts.
- $Trigger: enthält den Aufgabenplan
- $Principal: Enthält den Benutzer, der die Aufgabe ausführen wird
Als Nächstes werden wir das Cmdlet verwenden. Register-ScheduledTask um die Aufgabe zu erstellen.
Hier ist der vollständige Code:
$Action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument '-NoProfile -ExecutionPolicy Bypass -File "C:\Scripts\CleanTemp.ps1"'
$Trigger = New-ScheduledTaskTrigger -Daily -At 4am
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -RunLevel Highest
Register-ScheduledTask -TaskName "CleanTempPS" -Action $Action -Trigger $Trigger -Principal $PrincipalNach der Ausführung verwenden Sie das Cmdlet: Get-ScheduledTask -TaskName " um die Erstellung zu überprüfen.
Abschluss
Die Kombination von Windows Task Scheduler und PowerShell ist eine einfache und effektive Methode, um Ihre Skripte zu automatisieren.
Mit diesen Schritten können Sie jedes PowerShell-Skript so planen, dass es in regelmäßigen Abständen oder basierend auf bestimmten Ereignissen ausgeführt wird, und dabei die Kontrolle über Sicherheit und Protokollierung behalten.
