Wenn Sie neu in der PowerShell-Skriptsprache sind und lernen möchten, wie Sie PowerShell-Skripte ausführen, sind Sie bei diesem Blogbeitrag genau richtig. Dieser Blog wird ein Tutorial sein, das gängige Methoden zum Ausführen von Skripten abdeckt, sowie einige mögliche Probleme.
Voraussetzungen
Dieser Artikel wird Sie durch das Ausführen von PowerShell auf Ihrem lokalen Computer führen. Wenn Sie mitmachen möchten, stellen Sie bitte sicher, dass Sie die folgenden Voraussetzungen erfüllen, bevor Sie diesen Artikel starten.
- A Windows 10 computer with Administrator privileges.
- Windows PowerShell Version 5 oder höher. Sie können auch PowerShell v7 verwenden. Dieses Tutorial konzentriert sich auf Windows PowerShell, da es bereits im Betriebssystem Windows enthalten ist.
- Jeder Textdatei-Editor
Umgang mit der Ausführungsrichtlinie
Wenn Sie zum ersten Mal versuchen, ein Windows PowerShell-Skript auszuführen, könnten Sie auf ein häufiges Problem stoßen. PowerShell wird wahrscheinlich eine Fehlermeldung zurückgeben, die besagt, dass ein Skript „nicht geladen werden kann, da das Ausführen von Skripten auf diesem System deaktiviert ist“.
PowerShell gibt die oben genannte Fehlermeldung zurück, wenn Sie versuchen, ein PowerShell mit einer Ausführungsrichtlinie auf Restricted, Remote Signed oder All Signed auszuführen.
Restricted
Restricted ist die Standardrichtlinie für Windows-Clientcomputer. Wenn Sie PowerShell zum ersten Mal verwenden, ist Ihre Standardrichtlinie wahrscheinlich so eingestellt, dass alle Skripte eingeschränkt werden.
Sie können jedoch weiterhin einzelne Befehle in einem Terminal ausführen, jedoch keine Skriptdatei. Die Einschränkung gilt für jede Dateiendung mit .ps1xml
, .psm1
oder .ps1
.
Unrestricted
Unrestricted ermöglicht das Ausführen eines beliebigen Skripts. Es warnt jedoch vor der Ausführung, wenn das Skript aus dem Internet heruntergeladen wurde. Diese Richtlinie ist normalerweise die Standardrichtlinie für Nicht-Windows-Geräte.
Remote Signed
Die Remote-Signed-Richtlinie ermöglicht das Ausführen eines beliebigen Skripts, das entweder (a) digital signiert ist oder (b) ein beliebiges Skript, das auf Ihrem lokalen Computer mit oder ohne Signatur geschrieben wurde.
Wenn ein Skript aus dem Internet heruntergeladen und nicht signiert wird, müssen Sie die Datei freigeben. Dies kann erfolgen, indem Sie mit der rechten Maustaste auf die Datei klicken und Eigenschaften auswählen. Alternativ können Sie das Unblock-File
-PowerShell-Cmdlet für diese bestimmte Skriptdatei verwenden.
Die Verwendung einer Remote-Signed-Richtlinie wäre eine ideale Option, wenn Sie ein Skript aus dem Internet ausführen.
All Signed
Alle signierten erfordert, dass alle Skripts digital von einem vertrauenswürdigen Herausgeber signiert sind. Dazu gehören die Skripts, die aus dem Internet heruntergeladen wurden, und lokal auf Ihrem Computer geschriebene Skripts.
Ändern der PowerShell-Ausführungsrichtlinie
Um die Ausführungsrichtlinie zu ändern:
- Öffnen Sie Windows PowerShell mit Ausführen als Administrator, um sicherzustellen, dass Sie die höchsten Berechtigungen haben, um die Richtlinienänderungen vorzunehmen.

2. Wenn geöffnet, führen Sie den folgenden PowerShell-Befehl aus, um die Ausführungsrichtlinie Ihres Computers festzulegen. Die Ausführungsrichtlinie kann, wie oben beschrieben, eine von drei verschiedenen Arten sein. Dieses Tutorial verwendet eine nützliche, aber dennoch sichere Ausführungsrichtlinie von RemoteSigned.
Da dieses Tutorial davon ausgeht, dass Sie das Skriptdatei GetServices.ps1 aus dem Internet heruntergeladen haben, setzen Sie die Ausführungsrichtlinie auf RemoteSigned.
Die Ausführungsrichtlinie RemoteSigned zwingt Sie dazu, jedes PowerShell-Skript, das aus dem Internet heruntergeladen wurde, kryptografisch zu signieren, bevor PowerShell es auf Ihrem System ausführt.
3. Sie sollten eine Ausgabe sehen, die Sie auffordert, die Aktion zu bestätigen. Geben Sie Y ein und drücken Sie die Eingabetaste, um die Richtlinienänderung zu bestätigen.
Zu diesem Zeitpunkt folgen Sie den nächsten Schritten, um verschiedene Methoden zu erkunden, um das PowerShell-Skript auf Ihrem Computer auszuführen.
Wie man PowerShell-Skript ausführt
Um das Ausführen eines PowerShell-Skripts zu demonstrieren, benötigen Sie tatsächlich eine Skriptdatei! Falls Sie keine zur Hand haben, laden Sie diese ZIP-Datei herunter und extrahieren Sie die PS1-Datei daraus. Innen finden Sie eine einfache Skriptdatei namens GetServices.ps1.
Jedes PowerShell-Skript sollte mit der Dateierweiterung
.ps1
enden.
Verwendung der Konsole
Sobald Sie ein Skript bereit haben, gibt es verschiedene Möglichkeiten, wie Sie eine PowerShell-Skriptdatei ausführen können. Eine der häufigsten Methoden ist über die PowerShell-Konsole.
Führen Sie dazu folgende Schritte aus:
- Öffnen Sie die PowerShell-Konsole, wie oben gezeigt.
Navigieren Sie mit dem PowerShell-Cmdlet Set-Location
oder dem Alias cd
zum Speicherort des Skripts auf dem Dateisystem. Das Skript dieses Tutorials befindet sich im Verzeichnis C:\Temp.
Führen Sie das Skript mit einer Punkt-Notation aus. PowerShell ist eine Shell, die auch nach Befehlsnamen sucht. Um zwischen einem PowerShell-Befehl und einem Skript zu unterscheiden, müssen Sie das Skript mit einem Punkt versehen. Dieser Punkt repräsentiert das aktuelle Verzeichnis.
So führen Sie ein PowerShell-Skript über die Befehlszeile über den PowerShell-Speicherort aus
Wenn Sie Skripts nicht über die PowerShell-Konsole ausführen können oder möchten, können Sie dies auch über die gute alte Befehlszeile (Eingabeaufforderung) tun.
Um Skripte über die Eingabeaufforderung auszuführen, müssen Sie zuerst die PowerShell-Ausführungsdatei (powershell.exe) starten, mit dem PowerShell-Pfad von C:\Program Files\WindowsPowerShell\powershell.exe
und dann den Skriptpfad als Parameter übergeben.
Sie können Skripte mit Parametern in jedem Kontext ausführen, indem Sie sie einfach beim Ausführen der PowerShell-Ausführungsdatei angeben, wie z. B.
powershell.exe -Parameter 'Foo' -Parameter2 'Bar'
.
Sobald Sie cmd.exe öffnen, können Sie ein PowerShell-Skript wie unten gezeigt ausführen. In diesem Beispiel wird der Motor ausgeführt und ihm der Skriptpfad von C:\Temp\GetServices.ps1 übergeben.
Beachten Sie unten, dass das Beispiel unten den PowerShell-Ortspfad verwendet, um das Skript auszuführen. Sie müssen dies tun, wenn der Ordner nicht irgendwo in Ihrem PATH liegt.
Der PowerShell-Ort für PowerShell 7 verwendet eine andere ausführbare Datei mit dem Namen pwsh.exe, die sich normalerweise in C:\Program Files\PowerShell\7\pwsh.exe befindet.
Hier ist ein nützliches YouTube-Video, das das Ausführen eines Skripts über eine Batch-Datei abdeckt, die von cmd.exe ausgeführt wird.
Verwendung der PowerShell ISE
Wenn Sie eigene Skripte erstellen oder die von anderen bearbeiten, verwenden Sie wahrscheinlich einen Skripteditor wie den PowerShell ISE oder vielleicht Visual Studio (VS) Code. Da die ISE mit Windows geliefert wird, konzentrieren wir uns für dieses Tutorial auf diese Methode.
Um ein Skript über die ISE aufzurufen:
- Navigieren Sie zum Startmenü, suchen Sie nach PowerShell ISE und öffnen Sie es.

2. Klicken Sie auf Datei → Öffnen und suchen Sie Ihr Skript.

3. Wenn das Skript geöffnet ist, klicken Sie auf die grüne Schaltfläche „Ausführen“, um das Skript auszuführen. Diese Schaltfläche ruft das Skript im integrierten PowerShell-Terminal unten auf.

Die Ausgabe des Beispielskripts
A PowerShell script can sometimes return output. This happens when the script you’re executing is built to return objects which is a fundamental component of PowerShell.
Wenn Sie das Beispielskript GetServices.ps1 ausführen, sehen Sie Folgendes. Dieses Skript führt das Get-Service
-Cmdlet aus, das alle auf Ihrem lokalen Windows-Computer installierten Dienste zurückgibt.
Ausführen eines PowerShell-Skripts von innerhalb eines Skripts heraus
Angenommen, Sie haben zwei Skripte und möchten, dass eines das andere aufruft. Vielleicht haben Sie ein Skript namens GetUser.ps1 und eines namens ResetPassword.ps1. Im GetUser.ps1-Skript möchten Sie das ResetPassword.ps1-Skript ausführen, um ein Benutzerpasswort zurückzusetzen.
Im aufrufenden Skript (GetUser.ps1) fügen Sie eine Zeile hinzu, um das andere Skript auszuführen, genau wie Sie das Skript über die Befehlszeile aufrufen würden.
Sie können unten sehen, dass Sie ein paar Optionen haben. In der Regel sollten Sie wählen, das andere Skript innerhalb derselben Sitzung oder desselben Gültigkeitsbereichs auszuführen, um die Dinge zu vereinfachen, es sei denn, Sie haben einen spezifischen Grund, das Skript in einer anderen PowerShell-Sitzung auszuführen.