Maksim Kabakou - Fotolia

Wie Sie Aufgaben mit PowerShell planen

Durch PowerShells Automatisierungsfunktion planen Sie Aufgaben einfach und verlässlich und verringern direkt Eingabefehler. Dieser Beitrag erklärt, wie es funktioniert.

Unter Windows ist die Funktion Aufgabenplanung ein wichtiger Punkt für Administratoren. Durch die Aufgabenplanung legen Admins automatisierte Reaktionen auf gewisse Auslöser (Trigger) fest. Die richtige Konfiguration kann sich aber aufwendig gestalten.

Der Vorteil ist, dass sie ein hohes Maß an Komplexität und Kompatibilität mit vielen Sicherheitskontexten durch fein justierbare Auslöseoptionen bieten. Wo jedoch Komplexität herrscht, können Konfigurationsfehler auftreten. Wenn Sie Automatisierungsskripte entwickeln, können Sie PowerShell verwenden, um eine geplante Aufgabe zu erstellen, um den Prozess zu vereinfachen. PowerShell hilft bei der Standardisierung von Verwaltungs- und Konfigurationsarbeiten und bei der Vermeidung typischer Fehler, die durch manuelle Eingaben entstehen.

Wie Sie Aufgabenaktion planen

Eine geplante Aufgabe hat mindestens eine Aktion, einen Auslöser und eine Gruppe zugehöriger Parameter. Nachdem Sie die Aufgabe erstellt haben, müssen Sie sie im System registrieren. Sie müssen jeden der hier aufgeführten Schritte einzeln ausführen, um eine separate geplante Aufgabe zu erstellen.

Verwenden Sie zum Erstellen der Aktion das Cmdlet New-ScheduledTaskAction, das den auszuführenden Befehl angibt. Als Beispiel wird in diesem Artikel eine automatisierte Aufgabe erstellt, die wiederum ein PowerShell-Skript startet.

In unserem Beispiel startet der Befehl die PowerShell-Engine und übergibt ein Skript an die PowerShell-Engine mit allen entsprechenden Befehlszeilenoptionen, damit das Skript nicht interaktiv ausgeführt wird. Die Skriptdatei befindet sich auf dem Computer, auf dem die geplante Aufgabe ausgeführt werden soll.

$Action = New-ScheduledTaskAction -Execute 'pwsh.exe' -Argument '-NonInteractive -NoLogo -NoProfile -File "C:\MyScript.ps1"'

Wie Sie einen Trigger erstellen

Als nächstes benötigen Sie einen Trigger. Es stehen mehrere Werte zur Verfügung, aber in diesem Fall soll das Skript zu einem festen Zeitpunkt ausgeführt werden, nämlich um drei Uhr morgens. Eine vollständige Liste der Optionen finden Sie in der Hilfe zum Cmdlet New-ScheduledTaskTrigger.

$Trigger = New-ScheduledTaskTrigger -Once -At 3am

So erstellen Sie Einstellungen

Erstellen Sie dann den geplanten Task mit dem Befehl New-ScheduledTask. Dieser Befehl benötigt einen Wert für den Settings-Parameter, auch wenn Sie keine speziellen Einstellungen benötigen. Um einen Setting-Parameter zu setzen, führen Sie New-ScheduledTaskSettingsSet aus, um ein Objekt zu erstellen.

$Settings = New-ScheduledTaskSettingsSet

So erstellen Sie die geplante Aufgabe

Nachdem Sie alle Objekte als Variablen zugewiesen haben, übergeben Sie jede dieser Variablen an den Befehl New-ScheduledTask, um ein geplantes Aufgabenobjekt zu erstellen.

$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Setting

Wie Sie die geplante Aufgabe registrieren

Zu diesem Zeitpunkt haben Sie ein geplantes Aufgabenobjekt im Memory erstellt. Um die geplante Aufgabe dem Computer hinzuzufügen, müssen Sie die geplante Aufgabe mit dem Cmdlet Register-ScheduledTask registrieren.

Aufgabenplanung
Abbildung 1: Namen, Trigger und Details der Aufgabe können Sie in der Aufgabenplanung einsehen.

Im folgenden Beispiel wird eine geplante Aufgabe registriert, die unter einem bestimmten Benutzernamen ausgeführt werden soll. Um die Aufgabe für einen bestimmten Benutzer auszuführen, müssen Sie das Kennwort des Benutzers angeben. In der Dokumentation zum Befehl Register-ScheduledTask finden Sie alle für dieses Cmdlet verfügbaren Optionen.

Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'Benutzername' -Password 'Passwort'

Wenn Sie alle Schritte korrekt ausgeführt haben, sollten Sie Ihre neu erstellte geplante Aufgabe im Aufgabenplaner sehen (Abbildung 1).

Nachdem die geplante Aufgabe registriert wurde und im Aufgabenplaner angezeigt wird, können Sie nun das Cmdlet Get-ScheduledTask ausführen, um die Aufgabe in PowerShell anzuzeigen.

PS C:\> Get-ScheduledTask -TaskName 'My PowerShell Script'
 TaskPath                                       TaskName                          State
 --------                                       --------                          -----
 \                                              My PowerShell Script              Ready

Erfahren Sie mehr über Desktop-Management