Powershell-Script von einer EXE-Datei aus ausführen ... Executionpolicy RemoteSigend / Uneingeschränkt, schlägt jedoch fehl

923
arvenyon

Also habe ich ein kleines VB-Programm geschrieben, das ein Powershell-Skript ausführt. Ich weiß, dass meine ExecutionPolicy auf RemoteSigned oder Uneingeschränkt gesetzt sein muss, um Skripts auf meinem Computer ausführen zu können. Also habe ich das gemacht, aber es wird immer wieder gesagt. ... cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at .. bla bla Normalerweise wird dieses Problem gelöst, indem die ExecutionPolicy geändert wird, diesmal jedoch nicht. Vielleicht, weil ich Powershell aus einer EXE-Datei rufe? Idk.

Einige beraten

0

2 Antworten auf die Frage

0
hanjo

Versuchen Sie es so auszuführen:

powershell.exe -ExecutionPolicy Bypass yourScript.ps1 

Erläuterung:

Aus der Dokumentation :

-ExecutionPolicy

Gibt die neue Ausführungsrichtlinie an. Die zulässigen Werte für diesen Parameter sind:

  • Beschränkt. Lädt keine Konfigurationsdateien oder führt keine Skripts aus. Eingeschränkt ist die Standardausführungsrichtlinie.
  • AllSigned Erfordert, dass alle Skripts und Konfigurationsdateien von einem vertrauenswürdigen Herausgeber signiert werden, einschließlich der Skripts, die Sie auf dem lokalen Computer schreiben.
  • RemoteSigned Erfordert, dass alle aus dem Internet heruntergeladenen Skripts und Konfigurationsdateien von einem vertrauenswürdigen Herausgeber signiert werden.
  • Uneingeschränkt. Lädt alle Konfigurationsdateien und führt alle Skripts aus. Wenn Sie ein nicht signiertes Skript ausführen, das aus dem Internet heruntergeladen wurde, werden Sie vor der Ausführung zur Genehmigung aufgefordert.
  • Bypass. Nichts ist blockiert und es gibt keine Warnungen oder Aufforderungen.
  • Nicht definiert. Entfernt die aktuell zugewiesene Ausführungsrichtlinie aus dem aktuellen Bereich. Dieser Parameter entfernt keine Ausführungsrichtlinie, die in einem Gruppenrichtlinienbereich festgelegt ist.
ach sicher, ich habe vergessen zu erwähnen, sry dafür. Ich habe auch versucht, Bypass und diese Art von Sachen. arvenyon vor 6 Jahren 0
Haben Sie auch versucht, Skripts dauerhaft für Ihren Benutzer zuzulassen, indem Sie (einmal) `Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy Bypass` ausführen? hanjo vor 6 Jahren 0
Ich habe nicht geholfen. Aber ich habe die Lösung gerade aus Versehen gefunden ... Ich habe die powershell.exe mit Administratorrechten direkt aus dem Verzeichnis geöffnet und dann das `PSReadLine Module` manuell geladen. Das hat mir geholfen und alles funktioniert jetzt perfekt. Aber trotzdem danke für deine Hilfe! arvenyon vor 6 Jahren 0
@ arvenyon Posten und akzeptieren Sie Ihre Lösung, sobald Sie dazu in der Lage sind. root vor 6 Jahren 0
0
arvenyon

Okay, nach endlosem Versuch fand ich aus Versehen die Lösung. Oder ich sage besser .. es hat für mich funktioniert.

Ich habe die powershell.exe aus dem Stammverzeichnis mit Administratorrechten gestartet. Danach habe ich das PSReadLine-Modul manuell geladen und die ExecutionPolicy wieder eingeschaltet RemoteSigned.

Nach diesen Schritten funktionierte alles wie erwartet. Um ehrlich zu sein, sehe ich momentan keinen Unterschied zwischen dem Öffnen der Powershell mit Administratorrechten aus dem Startmenü und dem Öffnen des Root-Verzeichnisses mit Administratorrechten. Aber es machte den Unterschied. Interessant.