Vs code kann nicht geladen werden, da die Ausführung von Skripts auf diesem System deaktiviert ist

VSCODE -Laufen -Skripte ist in diesem System deaktiviert

add following in vscode > settings.json "terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "icon": "terminal-powershell", "args": ["-ExecutionPolicy", "Bypass"] } }, "terminal.integrated.defaultProfile.windows": "PowerShell"

amit.bhagat

Ng.ps1 kann nicht geladen werden, da das Ausführen von Skripten auf diesem System VSCODE deaktiviert ist

I found out here that you can add to your visual studio code settings the following and the problem will vanish: For visual studio code settings, go to File -> Preferences -> Settings -> Extensions -> Scroll down and find "Edit in settings.json" "terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"] The reason is that, in build command line integrations like visual studio code, you need to set the command line policies by your self. By setting the above configurations, the visual studio code will do that for you. (read this to understand better the command line policies)

Muhammad Mabrouk

Kann nicht geladen werden, da das Ausführen von Skripten in diesem System gegen Code deaktiviert ist

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

Selfish Swiftlet

About_execution_Policies Visual Studio Code

"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]

Confused Crayfish

Kann nicht geladen werden, da das Ausführen von Skripten auf diesem System VSCODE deaktiviert ist

"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]

Anxious Alpaca

Ähnliche Antworten wie “VSCODE -Laufen -Skripte ist in diesem System deaktiviert”

  • Kann nicht geladen werden, da das Ausführen von Skripten in diesem System deaktiviert ist

Fragen ähnlich wie “VSCODE -Laufen -Skripte ist in diesem System deaktiviert”

  • Kann nicht geladen werden, da das Ausführen von Skripten in diesem System deaktiviert ist.
  • PS1 kann nicht geladen werden, da das Ausführen von Skripten in diesem System deaktiviert ist. Weitere Informationen finden Sie unter den
  • So lösen Sie den Zeitstempel im zukünftigen Fehler, wenn Sie eine TAR -Datei auf einem System auspacken, in dem sich die Uhr hinter der Systemuhr befindet, auf der Sie das TAR -Archiv erstellt haben

Wenn Benutzer unter Windows 7 mit der Windows-PowerShell experimentieren wollen, müssen Sie feststellen, dass die Skriptausführung verweigert wird. Auch mir fiel die Kinnlade herunter, als Windows 7 die Ausführung meines ersten PS1-Skripts verweigert und darauf hin wies, dass diese Funktion deaktiviert sei. Also habe ich recherchiert und eine Lösung gefunden, die nicht nur für Windows 7, sondern auch für Windows 8/8.1 verwendbar ist.

Komischerweise findet sich im Web da nix – die erste Fassung dieses Blogbeitrags wurde recht fix von Google ganz vorne in den Trefferlisten aufgeführt. Entweder habe ich etwas ganz gravierendes übersehen, und jedem anderen Anwender ist das Verhalten klar. Oder in Windows 7 wurden die Ausführungsrichtlinien für PowerShell-Skripte gegenüber früheren Fassungen der PowerShell (erstmals auf Set-ExecutionPolicy Restricted) geändert.

Hintergrund der Geschichte

Als ich zum ersten Mal ein PowerShell-Skript ausführen wollte, verweigert Windows die Ausführung von .ps1-Skriptdateien (z. B. über den Kontextmenübefehl Mit PowerShell ausführen). Auch in der PowerShell IDE-Entwicklungsumgebung erschien eine in roter Schrift gestaltete Fehlermeldung beim Ausführen eines .ps1-Skriptprogramms. Die Meldung enthielt den Hinweis, dass die Datei nicht geladen werden konnte, weil die Skriptausführung auf dem System deaktiviert sei. Ein paar PowerShell-Bücher, die ich auf die Schnelle konsultierte, lieferten da keinerlei Hinweise. Aber mit etwas Suchen in den PowerShell-Befehlen bzw. mittels der Hilfe der PowerShell konnte ich aber recht schnell eine Lösung für das Problem finden.

PowerShell-Skriptausführung generell freigeben

Um Skriptdateien der PowerShell ausführen zu können, müssen Sie deren Ausführung zulassen. Öffnen Sie das Eingabefenster der Windows PowerShell über den Kontextmenübefehl Als Administrator ausführen und tippen Sie dann den Befehl

Set-ExecutionPolicy Unrestricted

ein. Anschließend betätigen Sie die Nachfrage über die (J)-Taste. Der Ansatz ist zwar eine Art Holzhammer-Methode, um die Skriptausführung vollständig frei zu geben. Aber zum Ausprobieren auf einem lokalen System durchaus zu gebrauchen (gibt halt schnelle Resultate).

So wird die Skriptausführung nur eingeschränkt

Sie können auch (siehe Abschnitt Powershell signieren und Execution Policy) auch den Befehl:

Set-ExecutionPolicy AllsignedRemoteSigned

verwenden. Mit dieser höheren Sicherheitsstufe (gegenüber "Unrestricted") wird eine Ausführung lokaler PS1-Skripte (die von einem vertrauenswürdigen Autor erstellt wurden) ermöglicht. Die Skriptdateien brauchen also nicht signiert zu sein. Nur wenn Skriptdateien aus dem Internet heruntergeladen werden und für die entsprechende Sicherheitszone klassifiziert sind, wird die Skriptausführung verweigert.

Anmerkung: Mit dem Modus "RemoteSigned" habe ich mich hier ziemlich ins Knie geschossen. In meiner Testumgebung funktionierten lokale PowerShell-Skriptprogramme zuerst nicht. Die PowerShell ISE brach die Ausführung der Skriptbeispiele mit dem Hinweis ab, dass das Skript nicht signiert sei. Dies war für mich auf den ersten Blick in keinster Weise erklärbar, hatte ich die Beispieldateien für meine Magnum-Tricks-Bücher doch ein paar Wochen vorher im Editor der PowerShell ISE erstellt und dann lokal gespeichert.

Erst als ich auf die Idee kam, die Skriptdatei mit der rechten Maustaste anzuklicken, den Kontextmenübefehl Eigenschaften zu wählen und dann auf der Registerkarte Allgemein die Schaltfläche Zulassen anzuklicken, klappte die Skriptausführung. Also war bei den .ps1-Dateien in meinem Beispielordner die Kennung für die Internetzone gesetzt. Im Nachhinein habe ich eine Erklärung gefunden: Ich hatte die Skripte auf einem anderen Rechner entwickelt und bin später auf eine neue Maschine umgezogen. Durch das Kopieren der Dateien über das Netzwerk wurde natürlich die Zonenkennung von lokaler Maschine auf Internetzone umgesetzt. Also hat die Sicherheitseinstellung ihren Dienst getan.

In weiteren Versuchen habe ich dann noch herausgefunden, dass auch die Aktualisierung der Sicherheitskennung zwischen Windows-Shell und PowerShell ISE nicht so optimal läuft. Wurde die Kennung für die Internetzone über die Schaltfläche Zulassen angeklickt, ließ sich die Skriptdatei zwar über den Kontextmenübefehl Mit PowerShell ausführen starten. Aber die Ausführung in der PowerShell ISE klappte erst, nachdem ich die ISE beendet, neu gestartet und dann die PS1-Datei erneut geladen hatte. Alles ziemlich verzwickt.


Wenn's ganz sicher sein soll

Wer es ganz sicher haben will (z. B. in Serverumgebungen), kann die ExecutionPolicy über den Befehl:

Set-ExecutionPolicy RemoteSigned Allsigned

auf AllSigned setzen. Dann sind nur PS1-Dateien ausführbar, die digital signiert sind.

Wer sich mit Sicherheitsfragen in Verbindung mit der Skriptausführung unter PowerShell befassen möchte, sei auf die unter Links genannten Fundstellen [2] und [3] verwiesen. Unter [5, 6, 7] finden Sie Artikel, die das Signieren von PowerShell-Code beschreiben.

Falls der Zugriff auf die Registrierung scheitert

In den Microsoft Windows 7-Foren gibt es Anwender [4], bei denen der Zugriff auf den Registrierungsschlüssel mit der Richtlinie mit einer Fehlermeldung

Set-ExecutionPolicy : Access to the registry key
'HKEY_LOCAL_MACHINE\SOFTWARE\
Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'
is denied.

abbricht. In diesem Fall fehlt der betreffende Registrierungseintrag. Öffnen Sie die Registrierung im Registrierungseditor und navigieren Sie zum Schlüssel:

HKLM\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell

Anschließend fügen Sie den Wert (REG_SZ) mit dem Namen ExecutionPolicy ein und setzen diesen auf "RemoteSigned". Dies erfordert administrative Berechtigungen. Danach lässt sich in der PowerShell Konsole mit Get-ExecutionPolicy prüfen, ob es geklappt hat.

Links:
[1] Windows 7-Bücher
[2] Windows PowerShell – abwehren von schädlichem Code
(älterer Artikel zu Monad)
[3] Introduction to Code Signing
[4] Microsoft Windows 7-Forum
[5] Signing PowerShell Scripts
[6] Signing PowerShell Scripts – Automatically
[7] Technet-Artikel zum Script-Signing
[8] Technet-Artikel zum Cmdlet "Set-ExecutionPolicy"

Weitere Infos zu Windows 7 finden sich in meinen Windows 7-Tricks-Titeln.

Wie aktiviere ich PowerShell?

Um die Ausführung von Scripten zuzulassen öffnet man die Powershell mit Administratorrechten und gibt dort den Befehl „Set-ExecutionPolicy Unrestricted“ ein, drückt Eingabe und bestätigt die Sicherheitsabfrage mit „J“ für Ja. Hierdurch werden alle Scripte ausgeführt, egal welcher Herkunft.

Wie starte ich ein ps1 Script?

Um das Skript ausführen zu können, rufen Sie über die Konsole in der Powershell den entsprechenden Ordner/Dateipfad auf. Geben Sie danach den Befehl \[Skriptname]. ps1 ein. Damit wird Ihr Skript gestartet.

Was kann man alles mit der PowerShell machen?

Mit der PowerShell kann man sowohl einfache Befehle (z.B. aktuelle Uhrzeit anzeigen lassen) als auch sehr komplexe Anwendungen (z.B. Automatisierungslösungen) starten. Auch die Kombination mehrere Befehle ist möglich (“Pipelining”). Alternativ lassen sich sogar selbst entwickelte Befehle in die Konsole einbauen.

Wie Signiere ich ein PowerShell Script?

Zum digitalen signieren von PowerShell Scripts kann der Set-AuthenticodeSignature Befehl verwendet werden. Zunächst wird das Codesignaturzertifikat im lokalen Zertifikatspeicher identifiziert und in eine Variable geladen. Optional aber sehr sinnvoll ist die Verwendung eines Zeitstempels (engl. Timestamp) nach RFC 3161.