Wie kann ich in PowerShell eine geplante Aufgabe erstellen und konfigurieren?
- Voraussetzungen und Import des Moduls
- Erstellen eines Triggers
- Erstellen der Aktion
- Konto und Berechtigungen festlegen
- Erstellen der geplanten Aufgabe
- Weitere Konfigurationsmöglichkeiten
- Überprüfen und Verwalten der Aufgabe
- Zusammenfassung
PowerShell bietet leistungsfähige Möglichkeiten, geplante Aufgaben zu erstellen und zu verwalten. Dies geschieht hauptsächlich über das Modul ScheduledTasks, das ab Windows 8 und Windows Server 2012 standardmäßig verfügbar ist. Alternativ können auch die klassischen COM-Objekte oder die Befehle der schtasks.exe verwendet werden, aber die PowerShell-Cmdlets sind meist einfacher und flexibler.
Voraussetzungen und Import des Moduls
Stellen Sie zunächst sicher, dass Sie PowerShell mit administrativen Rechten ausführen, da zum Erstellen von Aufgaben in der Aufgabenplanung häufig erhöhte Rechte notwendig sind. Um die Cmdlets für geplante Aufgaben zu verwenden, sollten Sie das Modul ScheduledTasks importieren. Üblicherweise ist es automatisch geladen, aber Sie können es mit Import-Module ScheduledTasks sicherstellen.
Erstellen eines Triggers
Der Trigger definiert, wann die Aufgabe ausgeführt werden soll. Das kann z.B. eine tägliche Ausführung zu einer bestimmten Uhrzeit, bei Anmeldung eines Benutzers oder beim Systemstart sein. Zur Erstellung eines triggerelements nutzen Sie Cmdlets wie New-ScheduledTaskTrigger.
$trigger = New-ScheduledTaskTrigger -Daily -At 09:00AMDieser Befehl erstellt einen täglichen Trigger, der die Aufgabe jeden Tag um 9 Uhr morgens auslöst.
Erstellen der Aktion
Die Aktion beschreibt, was beim Auslösen der Aufgabe passieren soll. Zum Beispiel können Sie ein Programm starten oder ein Skript ausführen lassen. Hierfür verwenden Sie New-ScheduledTaskAction.
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:\Scripts\MeinSkript.ps1"Dieses Beispiel startet PowerShell und führt ein Skript über den angegebenen Pfad aus.
Konto und Berechtigungen festlegen
Geplante Aufgaben werden unter einem bestimmten Benutzerkonto ausgeführt. Durch Verwendung von Register-ScheduledTask können Sie optional angeben, unter welchem Benutzerkonto und mit welchen Rechten die Aufgabe laufen soll. Möchten Sie, dass die Aufgabe auch ohne Anmeldung läuft, empfiehlt sich die Verwendung eines Systems- oder Dienstkontos.
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel HighestDies erstellt eine Principal-Konfiguration, die die Aufgabe unter dem Systemkonto mit höchsten Rechten ausführt.
Erstellen der geplanten Aufgabe
Nachdem Trigger, Aktion und Principal definiert sind, können Sie die Aufgabe mit Register-ScheduledTask erstellen.
Register-ScheduledTask -TaskName "MeinGeplantesSkript" -Trigger $trigger -Action $action -Principal $principal -Description "Führt mein Skript täglich um 9 Uhr aus."Dieser Befehl registriert die geplante Aufgabe im Task Scheduler mit dem angegebenen Namen und Beschreibung.
Weitere Konfigurationsmöglichkeiten
Sie können zusätzliche Einstellungen konfigurieren, wie z.B. die Bedingungen, unter denen die Aufgabe ausgeführt wird, oder wie sie sich bei Fehlern verhalten soll. Beispielweise lässt sich die maximale Ausführungszeit oder Wiederholungen konfigurieren:
$settings = New-ScheduledTaskSettingsSet -StartWhenAvailable -MultipleInstances IgnoreNew -ExecutionTimeLimit 00:30:00Und die Aufgabe wird mit diesen Einstellungen wie folgt registriert:
Register-ScheduledTask -TaskName "MeinGeplantesSkript" -Trigger $trigger -Action $action -Principal $principal -Settings $settingsÜberprüfen und Verwalten der Aufgabe
Nach dem Erstellen können Sie Ihre Aufgabe mit Get-ScheduledTask anzeigen lassen oder mit Unregister-ScheduledTask -TaskName "MeinGeplantesSkript" -Confirm löschen. Für eine manuelle Ausführung steht Start-ScheduledTask zur Verfügung.
Zusammenfassung
Das Erstellen einer geplanten Aufgabe in PowerShell erfolgt durch die Definition eines Triggers, einer Aktion, eines Principals und optionaler Einstellungen. Anschließend wird die Aufgabe mittels Register-ScheduledTask erstellt und im Task Scheduler registriert. Diese Methode ist flexibel, skriptbar und erlaubt umfangreiche Automatisierung in der Windows-Umgebung.
