Не удается загрузить профиль Powershell с помощью Ruby 2.3 в Windows

после обновления Ruby 2.2 до Ruby 2.3 вызовы powershell перестали работать, так как профили powershell не загружаются.

1) Если я открываю командную строку, это работает:

C:Usersadministrador>powershell.exe ls


    Directory: C:Usersadministrador


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        26/06/2015     16:20            .android
d----        24/08/2015     16:25            .gem
d-r--        30/06/2017     11:27            Contacts
d-r--        06/07/2017     16:53            Desktop
d-r--        30/06/2017     11:27            Documents
d-r--        30/06/2017     11:27            Downloads
d-r--        30/06/2017     11:27            Favorites
d-r--        30/06/2017     11:27            Links
d-r--        30/06/2017     11:27            Music
d-r--        30/06/2017     11:27            Pictures
d-r--        30/06/2017     11:27            Saved Games
d-r--        30/06/2017     11:27            Searches
d-r--        30/06/2017     11:27            Videos
-a---        22/01/2015     11:18       1796 volshext.log

2) но если использовать Ruby, он не работает. Я выполняю командную строку от имени администратора:

irb(main):002:0> system("powershell ls")
File C:WindowsSysWOW64WindowsPowerShellv1.0profile.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
At line:1 char:2
+ . <<<<  'C:WindowsSysWOW64WindowsPowerShellv1.0profile.ps1'
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException

File C:WindowsSysWOW64WindowsPowerShellv1.0Microsoft.PowerShell_profile.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
At line:1 char:2
+ . <<<<  'C:WindowsSysWOW64WindowsPowerShellv1.0Microsoft.PowerShell_profile.ps1'
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException

File C:UsersadministradorDocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
At line:1 char:2
+ . <<<<  'C:UsersadministradorDocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1'
    + CategoryInfo          : NotSpecified: (:) [], PSSecurityException
    + FullyQualifiedErrorId : RuntimeException



    Directory: C:Usersadministrador


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        26/06/2015     16:20            .android
d----        24/08/2015     16:25            .gem
d-r--        30/06/2017     11:27            Contacts
d-r--        06/07/2017     16:53            Desktop
d-r--        30/06/2017     11:27            Documents
d-r--        30/06/2017     11:27            Downloads
d-r--        30/06/2017     11:27            Favorites
d-r--        30/06/2017     11:27            Links
d-r--        30/06/2017     11:27            Music
d-r--        30/06/2017     11:27            Pictures
d-r--        30/06/2017     11:27            Saved Games
d-r--        30/06/2017     11:27            Searches
d-r--        30/06/2017     11:27            Videos
-a---        22/01/2015     11:18       1796 volshext.log


=> true

что может быть не так?

7
задан brgsousa
24.11.2022 7:49 Количество просмотров материала 3359
Распечатать страницу

1 ответ

вполне вероятно, что политика выполнения была задана для всей машины с помощью Set-ExecutionPolicy Unrestricted в обычном приглашении PowerShell. В 64-разрядной системе существует две версии PowerShell: 64-разрядная и 32-разрядная. В этом случае запуск PowerShell обычно получит 64-разрядной версии. Однако, похоже, что Ruby является 32-битным процессом. Судя по наличию SysWOW64 в сообщении об ошибке 32-разрядный Ruby запускает 32-разрядный PowerShell, который не получает такое же представление о системе, как 64-разрядная версия PowerShell. Оболочка PowerShell, запущенная на Ruby, не видит измененной политики выполнения, поэтому отказывается выполнять сценарий профиля.

чтобы устранить проблему, выполните команду настройки политики из 32-разрядной командной строки PowerShell с повышенными привилегиями. Вы можете получить один из них из записи "Windows PowerShell (x86)" в пуске. Вы также можете установить политику только для вашей учетной записи пользователя:

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

что, кажется, работает через bitnesses. Наконец, если вам не нужны сценарии профиля для запуска, у вас также есть возможность отключить загрузку профиля с помощью -noprofile переключатель powershell.

1
отвечен Ben N 2022-11-25 15:37

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх