So führen Sie PowerShell-Skripts unter Windows 10 automatisch aus

PowerShell beinhaltet zahlreiche Sicherheitsmechanismen, die die Ausführung potenziell schädlicher Skripte und Befehle unterbinden sollen. Beispielsweise ist es standardmäßig nicht möglich, ein aus dem Internet heruntergeladenes Skript zu starten, es sei denn, man modifiziert die PowerShell-Ausführungsrichtlinie. Eine zusätzliche Sicherheitsvorkehrung verhindert das direkte Ausführen eines Skripts per Doppelklick. PS1-Skripte sind nicht mit PowerShell verknüpft, und die einzige Option zur Skriptausführung besteht darin, mit der rechten Maustaste zu klicken und die Option zum Ausführen auszuwählen. Ein Doppelklick öffnet das Skript lediglich im Editor. Diese Sicherheitsmaßnahme ist zwar sinnvoll, kann jedoch lästig sein, wenn man möchte, dass ein PowerShell-Skript automatisch im Rahmen einer geplanten Aufgabe ausgeführt wird. Hierfür gibt es jedoch eine einfache Lösung: Die Verwendung eines Batch-Skripts zur automatischen Ausführung von PowerShell-Skripten.

Batch-Skripte zur Automatisierung

Nachfolgend finden Sie das Batch-Skript, das erforderlich ist, um PowerShell-Skripte unter Windows 10 automatisch auszuführen. Jedes PowerShell-Skript erfordert dabei sein eigenes Batch-Skript.

Grundstruktur:

@ECHO OFF
PowerShell.exe -Command "Pfad zum Skript"
PAUSE

Ersetzen Sie den Platzhalter „Pfad zum Skript“ durch den tatsächlichen Speicherort des auszuführenden PowerShell-Skripts. Ein Beispiel hierfür:

Beispiel:

@ECHO OFF
PowerShell.exe -Command "C:Reminder-ScriptsMilchKaufen.ps1"
PAUSE

Öffnen Sie einen Texteditor wie Notepad und fügen Sie dieses Skript ein. Speichern Sie die Datei mit der Dateiendung .bat.

Diese Batchdatei startet PowerShell und führt dann das angegebene Skript aus. Es ist weiterhin nicht möglich, ein PowerShell-Skript direkt per Doppelklick auf dem Desktop auszuführen. Die Batchdatei öffnet ein Eingabeaufforderungsfenster und zeigt die Nachricht „Drücken Sie eine beliebige Taste, um fortzufahren“. Erst nach Betätigung einer Taste wird das PowerShell-Skript ausgeführt. Wenn Sie eine Ausführung ohne Interaktion bevorzugen, entfernen Sie die Zeile „PAUSE“ aus dem Skript. Es sollte dann wie folgt aussehen:

@ECHO OFF
PowerShell.exe -Command "Pfad zum Skript"

PowerShell-Skripte und der Taskplaner

Wir gehen hier davon aus, dass Sie ein PowerShell-Skript automatisch als Aktion einer geplanten Aufgabe ausführen möchten. Hierzu ist es zunächst notwendig, wie oben beschrieben, ein entsprechendes Batch-Skript zur Ausführung des PowerShell-Skripts zu erstellen. Wählen Sie anschließend beim Erstellen der geplanten Aufgabe das Batch-Skript als Aktion aus, die als Reaktion auf einen Auslöser ausgeführt werden soll. Dadurch wird das PowerShell-Skript erfolgreich ausgeführt.

Wir haben den Taskplaner als Beispiel verwendet, aber wenn Sie eine andere Automatisierungssoftware nutzen, ist es ebenfalls notwendig, das Batch-Skript aufzurufen. Die einzige Ausnahme besteht, wenn die verwendete Automatisierungssoftware selbst PowerShell öffnen und direkt auf das PowerShell-Skript verweisen kann.