Melpomene - Fotolia

So planen Sie Aufgaben mit PowerShell

Mit den Automatisierungsfunktionen von PowerShell können Nutzer Aufgaben zuverlässig planen und die Wahrscheinlichkeit von Eingabefehlern verringern. Wir zeigen wie es geht.

Nahezu jeder Systemadministrator muss sich mit der Funktion Aufgabenplanung unter Windows befassen. Das Planen von Aufgaben ist unglaublich hilfreich, denn es erlaubt Administratoren, automatisierte Reaktionen auf bestimmte Trigger (Auslöser) festzulegen. Es erfordert jedoch viel manuellen Aufwand, sie richtig zu konfigurieren.

Der Vorteil besteht darin, dass sie durch fein justierbare Trigger-Optionen ein hohes Maß and Komplexität und Kompatibilität mit vielen Sicherheitskontexten bieten. Aber wo Komplexität herrscht, können Konfigurationsfehler auftreten. Wenn Sie Automatisierungsskripte entwickeln, können Sie mit PowerShell eine geplante Aufgabe erstellen, um den Prozess zu vereinfachen. PowerShell hilft bei der Standardisierung der Verwaltungs- und Einrichtungsarbeit und dabei, typische Fehler bei manuellen Eingaben zu vermeiden.

Erstellen einer geplanten Aufgabenaktion

Eine geplante Aufgabe hat mindestens eine Aktion, einen Trigger und eine Gruppe von zugehörigen Einstellungen. Sobald Sie die Aufgabe erstellt haben, müssen Sie sie auch im System registrieren. Sie müssen jeden der hier aufgeführten Schritte separat durchführen, um eine einzelne geplante Aufgabe zu erstellen.

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

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

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

Einen Trigger erstellen

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

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

Einstellungen erstellen

Erstellen Sie als Nächstes den geplanten Task mit dem Befehl New-ScheduledTask. Dieser Befehl erfordert einen Wert für den Settings-Parameter, auch wenn Sie keine besonderen Einstellungen benötigen. Um einen Setting-Parameter einzustellen, führen Sie New-ScheduledTaskSettingsSet aus und erstellen somit ein Objekt.

$Settings = New-ScheduledTaskSettingsSet

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

Registrieren Sie die geplante Aufgabe

An diesem Punkt haben Sie ein geplantes Aufgabenobjekt im Speicher angelegt. Um die geplante Aufgabe auf dem Computer hinzuzufügen, müssen Sie die geplante Aufgabe mit dem Cmdlet Register-ScheduledTask registrieren.

Abbildung 1: Öffnen Sie nach dem Erstellen Ihrer geplanten Aufgabe in PowerShell die Aufgabenplanung, um den Namen, Trigger und Details Ihrer neuen Aufgabe einzusehen.
Abbildung 1: Öffnen Sie nach dem Erstellen Ihrer geplanten Aufgabe in PowerShell die Aufgabenplanung, um den Namen, Trigger und Details Ihrer neuen Aufgabe einzusehen.

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 dessen Kennwort angeben. Es ist hilfreich, in der Dokumentation zum Befehl Register-ScheduledTask nachzuschlagen, um alle Optionen zu sehen, die für dieses Cmdlet verfügbar sind.

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 ist und in der Aufgabenplanung 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

ComputerWeekly.de
Close