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

Las*_*sen 10 windows powershell continuous-integration bamboo node.js

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

远程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
Run Code Online (Sandbox Code Playgroud)

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

where powershell
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Run Code Online (Sandbox Code Playgroud)

我试图重启服务并重启机器多次.没运气.唯一有效的方法是,如果我将脚本作为bat文件执行,并使用powershell的绝对路径 - 但我不希望这样.

我已经在这方面寻找解决方案,但即使这个看起来很相关:在更新到PowerShell 3之后Hudson找不到powershell - 提议的解决方案不起作用.

我在这里错过了什么?

tho*_*sen 14

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

  • 很棒的建议 - 这就是诀窍.我将用户变量的内容移动到系统变量,删除了用户变量PATH,然后事情再次起作用.我无法相信Build代理没有合并两个PATH变量.无论如何,这真的很高兴知道.再次感谢. (4认同)
  • 救了我星期一的早晨,所有人都被打破了.什么是时间炸弹 - 自节点更新以来的几天 - 但只有当服务器因Windows升级而重新启动时,代理才会重新启动并且错误开始发生. (3认同)