簡體   English   中英

Hudson不會使用Powershell插件運行任何Powershell腳本

[英]Hudson won't run any Powershell scripts using Powershell plugin

遇到使用Powershell插件從Hudson CI服務器執行Powershell腳本的問題。 我在跑:

  • 哈德森v1.362
  • Windows 2003
  • Powershell 1.0

我正在嘗試為Hudson使用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 ”但仍然在Hudson中收到相同的消息。

  1. 試圖重新啟動哈德森 - 沒有解決它。
  2. 嘗試在運行Hudson的帳戶的Powershell配置文件中Set-ExecutionPolicy UnrestrictedSet-ExecutionPolicy Unrestricted ”,這只能成功地給我上述消息兩次而不是一次(諷刺的是)
  3. 嘗試從命令行“ Powershell -ExecutionPolicy Unrestricted ”發出。
    返回錯誤:“ Missing expression after unary operator '-'. At line:1 char:2 + -ExecutionPolicy Unrestricted ” - 我假設因為我使用Powershell 1而-ExecutionPolicy不是v1選項。

所以我被卡住了。 關於如何使用這個Poweshell插件讓Hudson運行Powershell腳本的任何建議都是非常受歡迎的。

謝謝

傑米

好消息。 安裝Powershell v2 似乎已經解決了這個問題。 我不是100%確定所有問題都已消失但我可以使用Hudson的Powershell插件成功執行Powershell命令, 是個好消息。

感謝大家的幫助,我希望這個帖子對未來的人們有用。

關心傑米

對於其他正在研究此問題的人來說,我遇到的一個解決方法是從設置執行策略的Jenkins作業中運行標准的Windows批處理命令:

powershell.exe -command set-executionpolicy unrestricted

出於某種原因,詹金斯使用的政策凌駕於機器范圍的政策之上。 從Jenkins中運行set-executionpolicy是確保設置特定於Jenkins環境的策略的快速方法。

由於Hudson PowerShell插件中的注釋也提到了這個問題,因此您可以恢復為以下腳本:

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

相同的腳本可以確保相應地設置策略( RemoteSignedUnrestricted

聽起來Hudson CI服務器可能在與您設置執行策略的用戶帳戶不同的用戶帳戶下運行。 如果是這種情況,則以該用戶身份登錄並設置執行策略。 如果這是在內置帳戶下運行的服務,您可以嘗試創建特殊帳戶,配置服務以使用該帳戶並在其上設置執行策略。 除此之外,升級到PowerShell 2.0並在嘗試時在命令行上傳遞策略(1.0不支持)。

另一種方法是通過GPO或reg密鑰在機器范圍內設置執行策略:

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

並將ExecutionPolicy值設置為“RemoteSigned”或“Unrestricted”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM