Ausführen von Skripts und Festlegen der Ausführungsrichtlinie in Windows PowerShell
Bevor Sie mit dem Ändern von Windows PowerShell-Skripts oder dem Erstellen eigener Skripts beginnen können, müssen Sie wissen, wie ein Windows PowerShell-Skript ausgeführt wird. Möglicherweise sind Sie mit dem Konzept vertraut, auf eine ausführbare Datei doppelzuklicken oder zuerst sie und dann die EINGABETASTE auszuwählen, um die Datei auszuführen, aber dieser Prozess funktioniert bei Windows PowerShell-Skripts nicht.
Eins der Probleme bei vielen Skriptsprachen ist, dass die versehentliche Ausführung der Skripts zu einfach ist. Die Benutzer können versehentlich ein Skript ausführen, indem sie darauf doppelklicken oder es auswählen und dann die EINGABETASTE auswählen. Diese Aktion ist besonders problematisch, wenn die Dateierweiterung ausgeblendet und Schadsoftware als E-Mail-Anlage enthalten ist. Eine angefügte Datei mit dem Namen receipt.txt.vbs würde z. B. als receipt.txt angezeigt, und Benutzer würden sie versehentlich ausführen und denken, dass es sich um eine einfache Textdatei handelt. Diese Einstellung betrifft Windows PowerShell-Skripts nicht, aufgrund der Aktionen, die zum Ausführen eines Skripts erforderlich sind.
Integration in den Datei-Explorer
Um Windows PowerShell-Skripts sicherer zu machen, ist die PS1-Dateierweiterung dem Editor zugeordnet. Wenn Sie daher auf eine PS1-Datei doppelklicken oder zuerst sie und dann die EINGABETASTE auswählen, wird sie im Editor geöffnet. Diese Einstellung bedeutet, dass Benutzer nicht gutgläubig dazu verleitet werden können, ein Windows PowerShell-Skript auszuführen, indem Sie darauf doppelklicken oder es auswählen und dann die EINGABETASTE auswählen.
Wenn Sie mit der rechten Maustaste auf ein Windows PowerShell-Skript klicken oder sein Kontextmenü aktivieren, haben Sie drei Optionen:
- Öffnen. Diese Option öffnet das Skript in Editor.
- Führen Sie powerShell aus. Diese Option führt das Skript aus, aber die Windows PowerShell-Eingabeaufforderung bleibt nach Abschluss der Skriptausführung nicht geöffnet.
- Bearbeiten. Diese Option öffnet das Skript in der Windows PowerShell ISE.
In den meisten Fällen ist es sinnvoll, dass die Windows PowerShell-Eingabeaufforderung geöffnet bleibt, wenn Sie ein Skript ausführen. Führen Sie dazu das Skript aus einer bereits geöffneten Windows PowerShell-Eingabeaufforderung aus.
Ausführen von Skripts an der PowerShell-Eingabeaufforderung
Zum Ausführen einer ausführbaren Datei an einer Eingabeaufforderung können Sie ihren Namen eingeben, um sie im aktuellen Verzeichnis auszuführen. Wenn das aktuelle Verzeichnis z. B. "C:\app" lautet, können Sie app.exe eingeben, um C:\app\app.exeauszuführen. Sie können diesen Prozess nicht verwenden, um Windows PowerShell-Skripts auszuführen, da das aktuelle Verzeichnis nicht durchsucht wird.
Zum Ausführen eines Windows PowerShell-Skripts an der Windows PowerShell-Eingabeaufforderung können Sie die folgenden Methoden verwenden:
- Geben Sie den vollständigen Pfad zum Skript ein; beispiel: C:\Scripts\MyScript.ps1.
- Geben Sie einen relativen Pfad zum Skript ein; beispiel: \Scripts\MyScript.ps1.
- Verweisen Sie auf das aktuelle Verzeichnis; beispiel: .\MyScript.ps1.
Die Skriptausführungsrichtlinie
Sie können steuern, ob Windows PowerShell-Skripts auf Windows-Computern ausgeführt werden können. Sie erledigen diese Aufgabe, indem Sie die Ausführungsrichtlinie auf dem Computer festlegen. Die Standardausführungsrichtlinie auf einem Computer unterscheidet sich je nach Betriebssystemversion. Um die aktuelle Konfiguration sicherzustellen, können Sie das Cmdlet Get-ExecutionPolicy verwenden.
Optionen für die Ausführungsrichtlinie:
- Eingeschränkt. Es dürfen keine Skripts ausgeführt werden.
- AllSigned. Skripts können nur ausgeführt werden, wenn sie digital signiert sind.
- RemoteSigned. Heruntergeladene Skripts können nur ausgeführt werden, wenn sie digital signiert sind.
- Uneingeschränkt. Alle Skripts können ausgeführt werden, aber beim Ausführen von nicht signierten heruntergeladenen Skripts wird eine Bestätigungsaufforderung angezeigt.
- Bypass. Alle Skripts werden ohne Aufforderungen ausgeführt.
Hinweis
Das Festlegen der Skriptausführungsrichtlinie stellt ein Sicherheitsnetz bereit, das die versehentliche Ausführung nicht vertrauenswürdiger Skripts verhindern kann. Die Ausführungsrichtlinie kann jedoch jederzeit außer Kraft gesetzt werden.
Sie können die Ausführungsrichtlinie auf einem Computer mithilfe des Cmdlets Set-ExecutionPolicy festlegen. Die übergreifende Verwaltung dieser Richtlinie für viele Computer ist jedoch schwierig. Wenn Sie die Ausführungsrichtlinie für viele Computer konfigurieren, können Sie die Gruppenrichtlinieneinstellung " Computerkonfiguration\Richtlinien\Administrative Vorlagen\Windows-Komponenten\Windows PowerShell\Skriptausführung gruppenrichtlinieneinstellung aktivieren" verwenden, um die lokale Einstellung außer Kraft zu setzen.
Die Ausführungsrichtlinie lässt sich für eine einzelne Windows PowerShell-Instanz außer Kraft setzen. Diese Einstellung ist nützlich, wenn die Unternehmensrichtlinie erfordert, dass die Ausführungsrichtlinie als eingeschränkt festgelegt wird, Aber Sie müssen weiterhin Skripts gelegentlich ausführen. Um die Ausführungsrichtlinie außer Kraft zu setzen, führen Sie PowerShell.exe mit dem Parameter "-ExecutionPolicy " aus.
Powershell.exe -ExecutionPolicy ByPass
Wenn Sie ein aus dem Internet heruntergeladenes Skript geändert haben, weist das Skript immer noch die Attribute auf, die es als heruntergeladene Datei ausweisen. Um diesen Status aus einem Skript zu entfernen, verwenden Sie das Cmdlet "Unblock-File ".