[英]Hudson won't run any Powershell scripts using Powershell plugin
遇到使用Powershell插件從Hudson CI服務器執行Powershell腳本的問題。 我在跑:
我正在嘗試為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中收到相同的消息。
Set-ExecutionPolicy Unrestricted
“ Set-ExecutionPolicy Unrestricted
”,這只能成功地給我上述消息兩次而不是一次(諷刺的是) 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'" "
相同的腳本可以確保相應地設置策略( RemoteSigned
或Unrestricted
)
聽起來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.