Show
amit.bhagat Ng.ps1 kann nicht geladen werden, da das Ausführen von Skripten auf diesem System VSCODE deaktiviert istI 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 istSet-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”
Fragen ähnlich wie “VSCODE -Laufen -Skripte ist in diesem System deaktiviert”
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.
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 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: 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.
|