Wenn Sie versuchen, ein PowerShell-Skript auszuführen, das nicht von einem vertrauenswürdigen Herausgeber signiert wurde, wird möglicherweise der folgende Sicherheitsfehler angezeigt:
„script.ps1 :Die Datei path\script.ps1 kann nicht geladen werden. Die Datei path\script.ps1 ist nicht digital signiert. Sie können dieses Skript auf dem aktuellen System nicht ausführen.“

Dieser Sicherheitsfehler kann auftreten, wenn die Ausführungsrichtlinie von PowerShell auf „Allsigned“ oder „Remotesigned“ festgelegt ist und das Skript nicht signiert ist.

Die Ausführungsrichtlinie „Allsigned“ ermöglicht die Ausführung aller signierten Powershell-Skripte. Vor der Ausführung des Skripts werden Sie aufgefordert, zu bestätigen, dass Sie dem Herausgeber, der das Skript signiert hat, vertrauen.

Die Richtlinie für die entfernte Ausführung schränkt die Ausführung heruntergeladener Skripts ein, die nicht signiert sind. Skripte, die vom lokalen Computer aus ausgeführt werden, müssen nicht signiert werden.

Lösung

Es gibt verschiedene Methoden, diesen Fehler zu beheben. Sie können entweder das PowerShell-Skript signieren, die Ausführungsrichtlinie ändern, die Richtlinie umgehen oder die Datei entsperren, damit sie einmal in dieser Sitzung ausgeführt werden kann.

Prüfen Sie die Ausführungsrichtlinie

Überprüfen Sie zunächst Ihre Ausführungsrichtlinie mit dem Cmdlet Get-ExecutionPolicy

PS C:\> Get-ExecutionPolicyAllSigned

Der Listenparameter im Cmdlet Get-ExecutionPolicy gibt Ihnen die Ausführungsrichtlinie für jeden Bereich an.

PS C:\> Get-ExecutionPolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned

Die Standardausführungsrichtlinie für alle Windows-Versionen außer Windows 2012 R2 ist Eingeschränkt. Die Standardausführungsrichtlinie in Windows 2012 R2 ist RemoteSigned.

Ausführungsrichtlinie dauerhaft ändern

Die einfachste, aber unsichere Methode, diese Fehlermeldung loszuwerden, besteht darin, die Ausführungsrichtlinie mit dem Cmdlet SetExecutionPolicy zu ändern. Mit dem folgenden Befehl wird die Ausführungsrichtlinie auf uneingeschränkt festgelegt.

PS C:\> Set-ExecutionPolicy unrestricted

Drücken Sie Y, um die Änderung zu bestätigen, wenn Sie dazu aufgefordert werden. Die Richtlinienänderung wird in der Registrierung aktualisiert und bleibt bestehen, bis Sie sie erneut ändern.

Ausführungsrichtlinie vorübergehend ändern

Anstatt die Ausführungsrichtlinie dauerhaft zu ändern, können Sie eine andere Richtlinie für eine einzelne PowerShell-Sitzung festlegen. Dazu verwenden Sie den ExecutionPolicy-Parameter von powershell.exe

Öffnen Sie eine Eingabeaufforderung oder PowerShell und führen Sie den Befehl aus:

C:\> powershell.exe -executionpolicy -bypass

Der obige Befehl öffnet eine PowerShell-Sitzung, für die die Ausführungsrichtlinie auf „Bypass“ gesetzt ist, was bedeutet, dass nichts blockiert wird.

Entblockieren einer heruntergeladenen Datei

Wenn die Ausführungsrichtlinie auf RemoteSigned eingestellt ist, werden Dateien, die aus dem Internet (oder aus E-Mails) heruntergeladen werden, blockiert, um die Ausführung unsicherer Skripts zu verhindern. Wenn Sie davon ausgehen, dass der Inhalt des Skripts sicher ist, können Sie die Blockierung aufheben und das Skript mit dem Cmdlet „Unblock-File“ in Ihrer Sitzung ausführen

PS C:\> Unblock-File -Path C:\Downloads\script1.ps1

Wenn Sie die Ausführungsrichtlinie für eine Sitzung oder ein bestimmtes Skript dauerhaft oder vorübergehend geändert haben, können Sie das Skript weiterhin ausführen, aber vergewissern Sie sich vorher, dass der Inhalt des Skripts Ihren Computer nicht beschädigt

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.