Wenn Sie versuchen, ein PowerShell-Skript auszuführen, das nicht von Trusted Publisher signiert wurde, erhalten Sie möglicherweise den folgenden Sicherheitsfehler.
<PowerShell-Skriptdatei> ist nicht digital signiert. Sie können
das Skript auf dem aktuellen System nicht ausführen. Weitere Informationen zum Ausführen von Skripts und zum Festlegen von Ausführungsrichtlinien finden Sie unter
über_Ausführungsrichtlinien unter http://go.microsoft.com/fwlink/?LinkID=135170.
Wie kann der Fehler PowerShell-Skript ist nicht digital signiert behoben werden?
Es gibt einige Lösungen für dieses Problem. Sie können das PowerShell-Skript, das Sie ausführen möchten, signieren, die Ausführungsrichtlinie ändern, die Richtlinie umgehen oder die Datei entsperren, damit sie einmal in dieser Sitzung ausgeführt werden kann.
Ausführungsrichtlinie prüfen
Sie können das Cmdlet „Get-ExecutionPolicy“ ausführen, um die Ausführungsrichtlinie abzurufen.
Sie können auch den Parameter -list hinzufügen, um die Ausführungsrichtlinie für jeden Bereich abzurufen.
Ausführungsrichtlinie dauerhaft ändern
Die einfachste, aber unsichere Methode, diese Fehlermeldung loszuwerden, besteht darin, die Ausführungsrichtlinie mit dem Cmdlet „Set-ExecutionPolicy“ zu ändern und die Ausführungsrichtlinie auf „uneingeschränkt“ zu setzen.
Set-ExecutionPolicy -ExecutionPolicy unrestricted
Ausführungsrichtlinie vorübergehend ändern
Um die Ausführungsrichtlinie vorübergehend zu ändern, können Sie das Cmdlet „Set-ExecutionPolicy“ mit der Einstellung „ByPass“ verwenden.
Set-ExecutionPolicy -ExecutionPolicy ByPass
Nachfolgend finden Sie eine detaillierte Auflistung der akzeptablen Werte für den Parameter „-ExecutionPolicy“:
- Eingeschränkt. Lädt keine Konfigurationsdateien und führt keine Skripte aus. Restricted ist die Standardausführungsrichtlinie.
- AllSigned. Erfordert, dass alle Skripts und Konfigurationsdateien von einem vertrauenswürdigen Herausgeber signiert werden, einschließlich Skripts, die Sie auf dem lokalen Computer schreiben.
- RemoteSigned. Erfordert, dass alle Skripts und Konfigurationsdateien, die aus dem Internet heruntergeladen werden, von einem vertrauenswürdigen Herausgeber signiert werden.
- Uneingeschränkt. Lädt alle Konfigurationsdateien und führt alle Skripts aus. Wenn Sie ein nicht signiertes Skript ausführen, das aus dem Internet heruntergeladen wurde, werden Sie vor der Ausführung um Erlaubnis gebeten.
- Umgehen. Es wird nichts blockiert und es werden keine Warnungen oder Aufforderungen angezeigt.
- Undefiniert. Entfernt die aktuell zugewiesene Ausführungsrichtlinie aus dem aktuellen Bereich. Mit diesem Parameter wird keine Ausführungsrichtlinie entfernt, die in einem Gruppenrichtlinienbereich festgelegt ist.
Der Standardbereich für den Befehl Set-ExecutionPolicy ist LocalMachine. Sie können auch angeben, in welchem Bereich die Richtlinie festgelegt werden soll, indem Sie den Parameter -Scope hinzufügen. Nachfolgend finden Sie eine detaillierte Auflistung der Bereiche, die Sie festlegen können:
- Prozess: Die Ausführungsrichtlinie betrifft nur den aktuellen PowerShell-Prozess.
- CurrentUser: Die Ausführungsrichtlinie betrifft nur den aktuellen Benutzer.
- LocalMachine: Die Ausführungsrichtlinie wirkt sich auf alle Benutzer des Computers aus.
Um eine Ausführungsrichtlinie aus einem bestimmten Bereich zu entfernen, setzen Sie die Ausführungsrichtlinie für diesen Bereich auf Undefined.