Es ist wahrscheinlich, dass die Ausführungsrichtlinie für die gesamte Maschine Set-ExecutionPolicy Unrestricted
in einer normalen PowerShell-Eingabeaufforderung festgelegt wurde. Auf einem 64-Bit-System gibt es zwei Versionen von PowerShell: eine 64-Bit- und eine 32-Bit-Version. In dieser Situation erhalten Sie normalerweise die 64-Bit-Version, wenn Sie PowerShell ausführen. Es scheint jedoch, dass Ruby ein 32-Bit-Prozess ist. Gemessen am Vorhandensein von SysWOW64
in der Fehlermeldung startet 32-Bit-Ruby die 32-Bit-PowerShell, die nicht die gleiche Sicht auf das System hat wie die 64-Bit-PowerShell. Von Ruby gestartete PowerShell kann die geänderte Ausführungsrichtlinie nicht sehen. Daher wird das Profilskript nicht ausgeführt.
Führen Sie den Richtlinieneinstellungsbefehl an einer erhöhten 32-Bit-PowerShell-Eingabeaufforderung aus, um das Problem zu beheben. Eine davon erhalten Sie über den Eintrag "Windows PowerShell (x86)" in Start. Sie können die Richtlinie auch nur für Ihr Benutzerkonto festlegen:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Das scheint über alle Bitnesses zu wirken. Wenn Sie die Profilskripts nicht zur Ausführung benötigen, haben Sie außerdem die Möglichkeit, das Laden von Profilen mit dem -noprofile
Switch zu deaktivieren powershell
.