Скорее всего, политика выполнения была установлена для всей машины с использованием Set-ExecutionPolicy Unrestricted
обычного приглашения PowerShell. В 64-разрядной системе фактически есть две версии PowerShell: одна 64-разрядная и одна 32-разрядная. В этой ситуации при запуске PowerShell вы получите 64-битную версию. Тем не менее, похоже, что Ruby - это 32-битный процесс. Судя по наличию SysWOW64
в сообщении об ошибке, 32-разрядная версия Ruby запускает 32-разрядную версию PowerShell, которая не дает того же представления о системе, что и 64-разрядная версия PowerShell. Запущенный Ruby PowerShell не видит измененную политику выполнения, поэтому он отказывается запускать скрипт профиля.
Чтобы устранить проблему, запустите команду установки политики из командной строки PowerShell с повышенными привилегиями. Один из них можно получить из записи «Windows PowerShell (x86)» в разделе «Пуск». Вы также можете установить политику только для своей учетной записи:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Это, кажется, работает через битности. Наконец, если вам не нужны скрипты профиля для запуска, у вас также есть возможность отключить загрузку профиля с -noprofile
переключателем на powershell
.