Хадсон не будет запускать скрипты Powershell с помощью плагина Powershell - PullRequest
3 голосов
/ 06 августа 2010

Обнаружена проблема при выполнении сценариев Powershell с сервера Hudson CI с использованием подключаемого модуля Powershell.У меня работает:

  • Hudson v1.362
  • Windows 2003
  • Powershell 1.0

Я пытаюсь использовать PowershellПлагин для Гудзона.Все, что я пробую, просто дает мне:


File C:\DOCUME~1\SVC_PR~1\LOCALS~1\Temp\hudson2144883754471568213.ps1  
  cannot be loaded because the execution of scripts is disabled on this system.

Я установил ExecutionPolicy как "Unrestricted", но все равно получаю то же сообщение в Гудзоне.

  1. Попытка перезапуска Hudson - не решилась.
  2. Попытка добавить "Set-ExecutionPolicy Unrestricted" в профиль Powershell учетной записи, на которой запущен Hudson, из-за которой мне только два раза, а не один раз удалось выдать мне указанное сообщение(о ирония)
  3. Пробная выдача из командной строки "Powershell -ExecutionPolicy Unrestricted".
    Это вернуло ошибку: "Missing expression after unary operator '-'. At line:1 char:2 + -ExecutionPolicy Unrestricted" - я полагаю, потому что я использую Powershell 1, а -ExecutionPolicy - этоне вариант v1.

Так что я застрял.Любой совет, как заставить Хадсона запускать скрипты Powershell с помощью этого плагина Poweshell, был бы очень кстати.

Спасибо

Джейми

Ответы [ 4 ]

1 голос
/ 09 августа 2010

Хорошие новости. Установка Powershell v2 , кажется, решила проблему. Я не уверен на 100%, что все проблемы исчезли, но я могу успешно выполнять команды Powershell с помощью плагина Powershell для Hudson, и , что - хорошая новость.

Спасибо всем за помощь, и я надеюсь, что эта ветка окажется полезной для людей в будущем.

С уважением Джейми

0 голосов
/ 02 декабря 2013

Для всех, кто изучал эту проблему, один из обходных путей, к которому я пришел, - это запустить стандартную пакетную команду Windows из задания Jenkins, которое устанавливает политику выполнения:

powershell.exe -command set-executionpolicy unrestricted

По какой-то причине политикаиспользование Дженкинсом отменяло политику всей машины.Выполнение set-executepolicy из Jenkins было быстрым способом убедиться, что политика, специфичная для среды Jenkins, была установлена.

0 голосов
/ 06 августа 2010

Похоже, что сервер Hudson CI может работать под другой учетной записью, чем та, из которой вы устанавливаете политику выполнения. Если это так, войдите в систему как этот пользователь и установите политику выполнения. Если это служба, работающая под встроенной учетной записью, вы можете попробовать создать специальную учетную запись, настроить службу для использования этой учетной записи и установить для нее политику выполнения. Если не считать этого, обновите до PowerShell 2.0 и передайте политику в командной строке, как вы пытались (что не поддерживается в 1.0).

Другой подход заключается в настройке политики выполнения на уровне компьютера с помощью либо объекта групповой политики, либо ключа reg:

HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 

и установите для параметра ExecutionPolicy значение «RemoteSigned» или «Unrestricted»

0 голосов
/ 06 августа 2010

Поскольку в комментариях к Hudson PowerShell Plugin также упоминается эта проблема, можно вернуться к сценарию с:

" powershell.exe "& 'script.ps1'" "

Этот же скрипт может быть установлен соответствующим образом для Политики (RemoteSigned или Unrestricted)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...