Die Powershell ist nicht ein digital signierter Fehler wird häufig ausgelöst, während Benutzer PowerShell-Skripte ausführen. Dies geschieht im Allgemeinen aufgrund der für die PowerShell-Ausführungsrichtlinie festgelegten Werte.
Als Teil unserer Server-Management-Services helfen wir unseren Kunden, Windows-Fehler regelmäßig zu beheben.
Lassen Sie uns heute die möglichen Ursachen und Korrekturen für diesen Fehler diskutieren.
Was ist PowerShell ist nicht digital signiert Fehler?
Beim Versuch, ein PowerShell-Skript auszuführen, das nicht vom vertrauenswürdigen Herausgeber signiert wurde, wird Benutzern häufig der Sicherheitsfehler „PowerShell ist nicht digital signiert“ angezeigt, wie unten gezeigt:
Dieser Sicherheitsfehler kann auftreten, wenn wir eine AllSigned- oder RemoteSigned PowerShell-Ausführungsrichtlinie haben.
Lassen Sie uns nun einige mögliche Methoden zur Behebung dieses Fehlers diskutieren.
Wie zu beheben PowerShell ist kein digital signierter Fehler?
Es gibt einige mögliche Methoden, um diesen Fehler zu beheben. Schauen wir uns jeden von ihnen einzeln an.
Ausführungsrichtlinie prüfen und ändern
Der erste Schritt besteht darin, die Ausführungsrichtlinie zu überprüfen. Wir können das Cmdlet Get-ExecutionPolicy ausführen, um die Ausführungsrichtlinie abzurufen. Der Parameter list im Cmdlet Get-ExecutionPolicy gibt die Richtlinie für jeden Bereich an.
PS C:\> Get-ExecutionPolicy -list
Sobald wir eine Vorstellung von den Ausführungsrichtlinien haben, besteht die einfachste, aber unsichere Methode, diese Fehlermeldung zu beseitigen, darin, die Ausführungsrichtlinie in uneingeschränkt zu ändern.
Außerdem können wir die Ausführungsrichtlinie mit dem Cmdlet SetExecutionPolicy ändern. Der folgende Befehl setzt die Ausführungsrichtlinie auf Uneingeschränkt:
PS C:> Set-ExecutionPolicy unrestricted.
Drücken Sie Y, um die Änderung zu bestätigen, wenn Sie dazu aufgefordert werden.
Dann wird die Richtlinienänderung in der Registrierung aktualisiert und bleibt so, bis wir sie erneut ändern
Umgehen Sie die aktuelle PowerShell-Sitzung
Um die Ausführungsrichtlinie vorübergehend zu ändern, können wir das Cmdlet Set-ExecutionPolicy mit ByPass-Einstellung verwenden.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy ByPass
Dieser einfache Befehl oben legt die Ausführungsrichtlinie fest, um die aktuelle PowerShell-Sitzung zu umgehen. Sobald wir diese PowerShell-Sitzung schließen, gehen diese Einstellungen verloren.
Zulässige Werte für den Parameter ExecutionPolicy
Nachfolgend finden Sie die Details der zulässigen Werte für den Parameter -ExecutionPolicy:
- Eingeschränkt. Lädt keine Konfigurationsdateien oder führt keine Skripte aus. Restricted ist die Standardausführungsrichtlinie.
- Allsigniert. Erfordert einen vertrauenswürdigen Herausgeber, um alle Skripte und Konfigurationsdateien zu signieren, einschließlich Skripte, die wir auf dem lokalen Computer schreiben.
- RemoteSigned. Erfordert einen vertrauenswürdigen Herausgeber, um alle aus dem Internet heruntergeladenen Skripte und Konfigurationsdateien zu signieren.
- Uneingeschränkt. Lädt alle Konfigurationsdateien und führt alle Skripte aus. Fragt um Erlaubnis, wenn wir ein unsigniertes Skript ausführen, das aus dem Internet heruntergeladen wurde.
- Umgehen. Blockiert nichts und es gibt keine Warnungen oder Eingabeaufforderungen.
- Nicht definiert. Entfernt die aktuell zugewiesene Ausführungsrichtlinie aus dem aktuellen Bereich. Dieser Parameter entfernt keine Ausführungsrichtlinie, die in einem Gruppenrichtlinienbereich festgelegt ist.
Der Standardbereich für den Befehl Set-ExecutionPolicy ist LocalMachine. Wir können den Bereich für Richtlinien auch angeben, indem wir den Parameter -Scope hinzufügen. Zu den Bereichen, die wir beispielsweise festlegen können, gehören:
- Prozess: Die Ausführungsrichtlinie betrifft nur den aktuellen PowerShell-Prozess.
- currentUser: Die Ausführungsrichtlinie betrifft nur den aktuellen Benutzer.
- LocalMachine: Die Ausführungsrichtlinie betrifft alle Benutzer des Computers.Um eine Ausführungsrichtlinie aus einem bestimmten Bereich zu entfernen, setzen Sie die Ausführungsrichtlinie für diesen Bereich auf Undefined .
Entsperren der heruntergeladenen Datei
Signieren Sie für die RemoteSignedExecution-Richtlinie alle Skripte und Konfigurationsdateien, die von einem vertrauenswürdigen Herausgeber aus dem Internet oder aus E-Mails heruntergeladen wurden.
Wenn wir darauf vertrauen, dass der Inhalt des Skripts sicher ist, können wir es mithilfe des Cmdlets Unblock-File für die Ausführung in der Sitzung entsperren:
PS C:> Unblock-File -Path C:Downloadsscript1.ps1
Fazit
Kurz gesagt, PowerShell ist nicht digital signiert Ein Sicherheitsfehler kann auftreten, wenn die PowerShell-Ausführungsrichtlinie auf AllSigned oder RemoteSigned . Heute haben wir gesehen, wie unsere Support-Ingenieure diesen Fehler beheben.