none
Невозможно загрузить файл C:\Users...ps1, так как выполнение сценариев отключено в этой системе RRS feed

  • Вопрос

  • Доброго дня. 

    • Запускаю PS ISE от им Администратора
    • Открываю в консоли скрипт ps1 (с раб стола)
    • Запускаю сркипт и "Невозможно загрузить файл C:\Users...ps1, так как выполнение сценариев отключено в этой системе".

    В скрипте есть строка Set-ExecutionPolicy Bypass -Force (Unrestricted или RemoteSigned, неважно) которая не помогает. Но, если я запущу эту строчку отдельно (выделив и запустив фрагмент), то консоль переходит в указанную политику и далее скрипт отрабатывает даже после перезагрузки компьютера. Когда я даю свой скрипт другим людям и они запускают первый раз, они так же сталкиваются с этой дурной проблемой, пока у них политика restricted. Говорить всем запустите строчку отдельно - не хотелось бы и попахивает дурно. Как можно обойти это, желательно локально в скрипте и почему строчка не отрабатывает в сценарии целиком и её надо запускать отдельно? козни майкрософт ? с таким сталкивался еще много лет назад в других местах.

    • Изменено ole-van-de 23 июня 2020 г. 8:25
    23 июня 2020 г. 7:41

Ответы

  • можно создать bat файл вот такого содержания

    powershell.exe -executionpolicy RemoteSigned -file путь к файлу.ps1

    или

    powershell.exe -Command Set-ExecutionPolicy RemoteSigned

    powershell.exe -file путь к файлу.ps1

    • Предложено в качестве ответа Vector BCOModerator 23 июня 2020 г. 13:12
    • Помечено в качестве ответа ole-van-de 24 июня 2020 г. 17:02
    23 июня 2020 г. 8:49
  • Доброго дня. 

    • Запускаю PS ISE от им Администратора
    • Открываю в консоли скрипт ps1 (с раб стола)
    • Запускаю сркипт и "Невозможно загрузить файл C:\Users...ps1, так как выполнение сценариев отключено в этой системе".

    В скрипте есть строка Set-ExecutionPolicy Bypass -Force (Unrestricted или RemoteSigned, неважно) которая не помогает. Но, если я запущу эту строчку отдельно (выделив и запустив фрагмент), то консоль переходит в указанную политику и далее скрипт отрабатывает даже после перезагрузки компьютера. Когда я даю свой скрипт другим людям и они запускают первый раз, они так же сталкиваются с этой дурной проблемой, пока у них политика restricted. Говорить всем запустите строчку отдельно - не хотелось бы и попахивает дурно. Как можно обойти это, желательно локально в скрипте и почему строчка не отрабатывает в сценарии целиком и её надо запускать отдельно? козни майкрософт ? с таким сталкивался еще много лет назад в других местах.

    Если политику выставляете внутри скрипта который не может запуститься, то все ж вроде логично?

    В дополнение к рекоммендациям коллеги вы в батнике можете использовать "%~dp0ScriptName.ps1" в качестве пути где ScriptName поменяйте на название своего скрипта

    Если развивать тему с батником и скрипт ps1 достаточно короткий, то его текст можно поместить в батнике, который при запуске создаст файл ps1 выполнит его, и в конце удалит его


    The opinion expressed by me is not an official position of Microsoft

    • Изменено Vector BCOModerator 23 июня 2020 г. 8:57
    • Помечено в качестве ответа ole-van-de 24 июня 2020 г. 17:02
    23 июня 2020 г. 8:53
    Модератор

Все ответы

  • ПРивет. 

    Покажите вывод Get-ExecutionPolicy -List

    23 июня 2020 г. 8:31
  • можно создать bat файл вот такого содержания

    powershell.exe -executionpolicy RemoteSigned -file путь к файлу.ps1

    или

    powershell.exe -Command Set-ExecutionPolicy RemoteSigned

    powershell.exe -file путь к файлу.ps1

    • Предложено в качестве ответа Vector BCOModerator 23 июня 2020 г. 13:12
    • Помечено в качестве ответа ole-van-de 24 июня 2020 г. 17:02
    23 июня 2020 г. 8:49
  • Доброго дня. 

    • Запускаю PS ISE от им Администратора
    • Открываю в консоли скрипт ps1 (с раб стола)
    • Запускаю сркипт и "Невозможно загрузить файл C:\Users...ps1, так как выполнение сценариев отключено в этой системе".

    В скрипте есть строка Set-ExecutionPolicy Bypass -Force (Unrestricted или RemoteSigned, неважно) которая не помогает. Но, если я запущу эту строчку отдельно (выделив и запустив фрагмент), то консоль переходит в указанную политику и далее скрипт отрабатывает даже после перезагрузки компьютера. Когда я даю свой скрипт другим людям и они запускают первый раз, они так же сталкиваются с этой дурной проблемой, пока у них политика restricted. Говорить всем запустите строчку отдельно - не хотелось бы и попахивает дурно. Как можно обойти это, желательно локально в скрипте и почему строчка не отрабатывает в сценарии целиком и её надо запускать отдельно? козни майкрософт ? с таким сталкивался еще много лет назад в других местах.

    Если политику выставляете внутри скрипта который не может запуститься, то все ж вроде логично?

    В дополнение к рекоммендациям коллеги вы в батнике можете использовать "%~dp0ScriptName.ps1" в качестве пути где ScriptName поменяйте на название своего скрипта

    Если развивать тему с батником и скрипт ps1 достаточно короткий, то его текст можно поместить в батнике, который при запуске создаст файл ps1 выполнит его, и в конце удалит его


    The opinion expressed by me is not an official position of Microsoft

    • Изменено Vector BCOModerator 23 июня 2020 г. 8:57
    • Помечено в качестве ответа ole-van-de 24 июня 2020 г. 17:02
    23 июня 2020 г. 8:53
    Модератор
  • Я понял смысл, помогли разобраться. Само содержимое скрипта не может переопределить политику, иначе злонамеренный код (допустим хакера) мог мы выполнить set-execution policy и... труба. А выделение строчки set-execution policy и его выполнение как фрагмента кода скрипта изнутри (как писал выше) работает, так как требует ручного вмешательства пользователя (что не может хакер). Вообще, разобраться в таком непросто, но теперь понятно. Просто раздавать скрипт то же не получится, придется мутить в паре с батником либо как фрагмент батника. Ладно... Спасибо всем.


    • Изменено ole-van-de 24 июня 2020 г. 15:36
    24 июня 2020 г. 15:33