none
PoSH - непонятки с политикой выполнения скриптов RRS feed

  • Вопрос

  • Всем привет!
    Подскажите вот с такой ситуацией. Есть приложение (в данном случае - 1С) которое генерирует скрипт, запускает его выполнение как внешнюю команду систему, а дальше уже парсит-обрабатывает результат. Я уже применял подобную схему для WSH-скриптов - все работало прекрасно, и сейчас решил сделать скрипт на PoSH.

    1С в результате генерировала сам скрипт во временном каталоге и выполняла его по следующей командной строке:
    powershell -File "C:\Documents and Settings\Admin\Local Settings\Temp\script.ps1"


    У себя на компе все отработало нормально, но я решил попробовать еще на терминальном сервере (Win2K3 x64 SP2). Вот тут то столкнулся с проблемой, что при выполнении скрипта вылетает сообщение:

    ----
    Не удается загрузить файл C:\Documents and Settings\Admin\Local Settings\Temp\script.ps1, так как выполнение скриптов запрещено для данной системы. Введите "get-help about_signing" для получения дополнительных сведений.
        + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordE
       xception
        + FullyQualifiedErrorId : RuntimeException

    ----

    Когда же запускаешь данный скрипт из коммандной строки - все нормально отрабатывает (политика: RemoteSigned)

    Попробовал изменить в 1С строку запуска таким образом: powershell -executionpolicy -RemoteSigned -File "C:\Documents and Settings\Admin\Local Settings\Temp\script.ps1"  - то же сообщение об ошибке.
    Пробовал даже ставить -executionpolicy -unrestricted - все равно: бла-бла-бла...выполнение скриптов запрещено для данной системы.

    В чем может быть проблема ?


    Andrew Mishechkin
    15 ноября 2010 г. 11:07

Ответы

Все ответы

  • -RemoteSigned,-unrestricted - таких параметров нет.

    powershell -executionpolicy RemoteSigned

    • Помечено в качестве ответа Andy Mishechkin 15 ноября 2010 г. 13:17
    15 ноября 2010 г. 11:29
    Отвечающий
  • Работает, спасибо!

    Вот, блин..., выдержка из хелпа по PoSH:

    ----------

    Чтобы задать политику выполнения для нового сеанса, запустите Windows 
    PowerShell в командной строке (например, Cmd.exe или Windows PowerShell), 
    а затем воспользуйтесь параметром ExecutionPolicy программы PowerShell.exe, 

    чтобы задать политику выполнения.

        Пример:

    powershell.exe -executionpolicy -allsigned
    -----------

    Вот я по аналогии и ставил минусы впереди :)

     


    Andrew Mishechkin
    15 ноября 2010 г. 13:17