安装 nodejs 后,Bamboo 远程构建代理找不到 powershell.exe

Bamboo remote build agent cannot find powershell.exe after installing nodejs

我刚刚在我的一个构建服务器(Win Server 2008 R2)上安装了 nodejs,它托管了一个 Bamboo 远程代理。完成安装并重新启动后,我遇到了以下情况:

远程 Bamboo 构建代理 运行 作为用户 MyDomain\MyUser 的 windows 服务。当执行带有内联 powershell 任务的构建时,它会失败并出现错误(来自构建代理日志):

com.atlassian.utils.process.ProcessNotStartedException: powershell could not be started
...
java.io.IOException: Cannot run program "powershell"
...
java.io.IOException: CreateProcess error=2, The system cannot find the file specified

以 MyDomain\MyUser 身份登录服务器,我检查过 powershell 在路径中:

where powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

我试过多次重启服务和重启机器。没有运气。唯一可行的是,如果我将我的脚本作为一个带有 powershell 绝对路径的 bat 文件来执行——但我不希望这样。

我已经搜索过这方面的解决方案,但即使这个似乎相关:Hudson cannot find powershell after update to powershell 3 - 建议的解决方案不起作用。

我在这里错过了什么?

如果您默认安装 nodejs,您会看到它在路径中添加了 nodejs 和 npm。有时我看到安装程序添加了一个名为 PATH 的用户变量 - 可能是 Bamboo 代理决定读取用户路径而不 "merging" 它与系统路径。我认为值得一试。

根据 Atlassian support page,这与 Java Service Wrapper 中的错误有关。我尝试了 Workaround-2,因为我的系统中没有用户 PATH 变量。我必须从代​​理机器上卸载 bamboo 代理服务和 Java 64 版本才能应用解决方法 2。