Powershell 不會在 Windows 10 上執行的新竹代理服務上執行
我正在嘗試在我們的竹子系統中設置一個新的 CI 建構節點。我有一個竹代理在此建構節點中作為 Windows 服務執行,我在 windows-server 2012 上執行了類似的設置,但現在我想在 Windows 10 中創建相同的設置。
許多 Windows 建構作業使用 powershell 作為建構過程的一部分來將工件發佈到其他儲存庫,它們在竹子作業配置中設置為腳本任務,就像我說的,它在 WS2012 建構機器中執行得很好.
在新的 Windows 10 節點中,我收到一條錯誤消息,指出腳本返回 RC -1 而不是 0。我嘗試在腳本上執行 echo “hello” 以查看它是否與新作業系統兼容,但我仍然得到了同樣的錯誤,這讓我認為這是一個權限問題。我檢查了執行策略,它設置為 RemoteSigned,我檢查了該服務是否使用具有管理員權限的帳戶執行。我仍然遇到同樣的問題。唯一奇怪的是竹子如何呼叫它使用的腳本
powershell -ExecutionPolicy bypass -Command scriptName.ps1
而不是使用 -File 選項從命令行執行,但這適用於其他節點,所以我不確定,主機作業系統旁邊的主要區別是 powershell 版本,Windows 10 使用 powershell 5.1 舊節點是使用 5.0 所以,我對你們的問題是:我還能檢查什麼?有什麼想法嗎?
所以問題是 env 在使用者路徑變數中缺少到 powershell 的路徑。添加它可以解決問題。我錯誤地認為,由於作業系統附帶了 powershell,因此該路徑將自動可用。
根據Atlassian 支持頁面,這與 Java Service Wrapper 中的錯誤有關。我嘗試了 Workaround-2,因為我的系統中沒有使用者 PATH 變數。我必須從代理機器上解除安裝竹代理服務和 Java 64 版本才能應用解決方法 2。