Nahezu jeder Systemadministrator hat mit geplanten Aufgaben zu tun. Sie sind unglaublich hilfreich, um etwas auf der Grundlage verschiedener Auslöser zu tun, aber sie erfordern viel manuellen Aufwand, um sie richtig zu konfigurieren.
Der Vorteil von geplanten Tasks ist, dass Sie sie mit einem hohen Maß an Komplexität mit Auslöseroptionen und verschiedenen Sicherheitskontexten erstellen können. Doch wo Komplexität herrscht, können Konfigurationsfehler entstehen. Bei der Entwicklung dieser Automatisierungsskripts können Sie eine geplante Aufgabe mit PowerShell erstellen, um den Prozess zu vereinfachen. Die Verwendung von PowerShell trägt zur Standardisierung der Verwaltungs- und Einrichtungsarbeiten bei, die mit komplizierten geplanten Aufgaben verbunden sind, was den zusätzlichen Vorteil hat, dass die üblichen Fehler vermieden werden, die aus der manuellen Eingabe resultieren.
Erstellen einer geplanten Aufgabenaktion
Eine geplante Aufgabe besteht mindestens aus einer Aktion, einem Auslöser und einer Gruppe von zugehörigen Einstellungen. Sobald Sie die Aufgabe erstellt haben, müssen Sie sie auch im System registrieren. Sie müssen jede Aktion separat ausführen, um eine einzelne geplante Aufgabe zu erstellen.
Um die Aktion zu erstellen, verwenden Sie das Cmdlet “New-ScheduledTaskAction”, das den auszuführenden Befehl angibt. Lassen Sie uns eine Aktion erstellen, die ein wenig Meta ist und ein PowerShell-Skript aufruft.
Der folgende Befehl ist ein Beispiel für den Aufruf der PowerShell-Engine und die Übergabe eines Skripts an diese, wobei alle entsprechenden Befehlszeilenschalter verwendet werden, 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"'
Erstellen Sie einen Auslöser
Als Nächstes benötigen Sie einen Auslöser. Es stehen Ihnen mehrere Werte zur Verfügung, aber diese Aufgabe wird eine bestimmte Zeit – 3 Uhr morgens – verwenden, um dieses Skript einmal auszuführen. Eine vollständige Liste der Optionen finden Sie auf der Hilfeseite des Cmdlets “New-ScheduledTaskTrigger”.
$Trigger = New-ScheduledTaskTrigger -Once -At 3am
Einstellungen erstellen
Als nächstes erstellen Sie die geplante Aufgabe mit dem Befehl “New-ScheduledTask”. Dieser Befehl erfordert einen Wert für den Parameter “Einstellungen”, auch wenn Sie keine speziellen Einstellungen verwenden. Deshalb führen Sie New-ScheduledTaskSettingsSet aus, um ein Objekt zu erstellen, das Sie hier übergeben können.
$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 Objekt für eine geplante Aufgabe zu erstellen.
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Registrieren Sie die geplante Aufgabe
An dieser Stelle haben Sie ein Objekt für eine geplante Aufgabe im Speicher erstellt. Um die geplante Aufgabe auf dem Computer hinzuzufügen, müssen Sie die geplante Aufgabe mit dem Cmdlet “Register-ScheduledTask” registrieren.
Im folgenden Beispiel wird eine geplante Aufgabe zur Ausführung unter einem bestimmten Benutzernamen registriert. Um die Aufgabe unter einem bestimmten Benutzerkontext auszuführen, müssen Sie das Kennwort angeben. In der Dokumentation des Befehls Register-ScheduledTask finden Sie alle Optionen, die Sie mit diesem Cmdlet verwenden können.
Register-ScheduledTask -TaskName 'My PowerShell Script' -InputObject $Task -User 'username' -Password 'passhere'
Wenn Sie alle Schritte korrekt ausgeführt haben, sollten Sie die neu erstellte geplante Aufgabe im Aufgabenplaner sehen.
Nachdem die geplante Aufgabe registriert ist und im Taskplaner angezeigt wird, können Sie das Cmdlet “Get-ScheduledTask” ausführen, um die Aufgabe anzuzeigen.