Wenn Sie ein Skript aus dem Internet herunterladen und versuchen, es auszuführen, wenn Sie PowerShell nicht zuvor konfiguriert haben, wird ein böser Fehler in roter Schrift ausgegeben. Dies reicht aus, um die meisten Benutzer abzuschrecken, aber es gibt eine einfache Lösung.
PowerShell verfügt über eine Reihe von Ausführungsmodi, die definieren, welche Art von Code ausgeführt werden darf. Dies wird durch einen Registrierungsschlüssel gesteuert, der in der HKLM-Struktur vorhanden ist. Es gibt 4 verschiedene Ausführungsmodi, sie sind:
- Eingeschränkt: Standardausführungsrichtlinie, führt keine Skripte aus, nur interaktive Befehle.
- Alle signiert: Führt Skripte aus; alle Skripte und Konfigurationsdateien müssen von einem Herausgeber Ihres Vertrauens signiert sein; setzt Sie dem Risiko aus, signierte (aber bösartige) Skripte auszuführen, nachdem Sie bestätigt haben, dass Sie dem Herausgeber vertrauen.
- Fernsigniert: Lokale Skripte werden ohne Signatur ausgeführt. Alle heruntergeladenen Skripte benötigen eine digitale Signatur, sogar ein UNC-Pfad.
- Uneingeschränkt:Führt Skripte aus; alle Skripts und Konfigurationsdateien, die von Kommunikationsanwendungen wie Microsoft Outlook, Internet Explorer, Outlook Express und Windows Messenger heruntergeladen wurden, werden ausgeführt, nachdem bestätigt wurde, dass Sie die Datei aus dem Internet verstehen; keine digitale Signatur erforderlich; setzt Sie dem Risiko aus, nicht signierte, bösartige Skripte auszuführen, die von diesen Anwendungen heruntergeladen wurden
Die Standardausführungsrichtlinie von PowerShell heißt Restricted. In diesem Modus funktioniert PowerShell nur als interaktive Shell. Es führt keine Skripts aus und lädt nur Konfigurationsdateien, die von einem vertrauenswürdigen Herausgeber signiert wurden. Wenn Sie den bösen roten Fehler erhalten, ist die wahrscheinlichste Ursache, dass Sie versuchen, ein unsigniertes Skript auszuführen. Am sichersten ist es, die Ausführungsrichtlinie auf uneingeschränkt zu ändern, Ihr Skript auszuführen und dann .
Um es in uneingeschränkt zu ändern, führen Sie den folgenden Befehl in einer administrativen PowerShell aus:
Set-ExecutionPolicy Unrestricted
Sie werden gefragt, ob Sie sicher sind, dass Sie die Ausführungsrichtlinie ändern möchten, und drücken Sie erneut die Eingabetaste.
Sie können Ihre heruntergeladenen Skripte jetzt problemlos ausführen. Es stellt jedoch ein ernsthaftes Sicherheitsrisiko dar, wenn Sie vergessen, die Ausführungsrichtlinie wieder auf den eingeschränkten Modus zu setzen. Sie können wahrscheinlich erraten, wie Sie es auf Restricted zurücksetzen können, aber falls Sie dies nicht tun:
Set-ExecutionPolicy Restricted
Sie werden erneut gefragt, ob Sie den Ausführungsmodus wirklich ändern möchten, fahren Sie fort und drücken Sie die Eingabetaste.