如何通过PowerShell脚本运行.jar文件实现Jenkins代理与主节点连接
Jenkins代理PowerShell启动脚本修复方案
原脚本核心错误
- 使用了中文全角引号
“,PowerShell无法识别该类非英文半角符号 - Jenkins jnlp参数拼写错误,正确参数为
-jnlpUrl,原脚本误写为带空格的-jnlp Url Start-Process参数使用错误:-FilePath用于指定待启动程序路径,原脚本错误将工作目录C:\Jenkins赋值给该参数,工作目录需使用-WorkingDirectory参数指定- 多参数传递不规范,未使用数组格式传递
ArgumentList,容易出现空格解析异常
修复后脚本
调试版(可直接查看错误输出)
先运行该版本,确认无报错后再使用后台启动版本:
# 切换到agent.jar所在目录 cd C:\Jenkins # 直接运行java命令,控制台会输出具体报错信息 java -jar agent.jar -jnlpUrl http://localhost:8080/computer/ComputerName/jenkins-agent.jnlp -secret 338e93b0b127faf70a56c0edec39a70804accd7157c49e1e37e3be14aa8ea8db
后台启动版(无控制台窗口)
调试确认无问题后使用该版本实现静默启动:
Start-Process java ` -ArgumentList @( "-jar", "agent.jar", "-jnlpUrl", "http://localhost:8080/computer/ComputerName/jenkins-agent.jnlp", "-secret", "338e93b0b127faf70a56c0edec39a70804accd7157c49e1e37e3be14aa8ea8db" ) ` -WorkingDirectory "C:\Jenkins" ` -WindowStyle Hidden
额外排查事项
- 运行
java -version确认Java环境已正确配置到系统环境变量,否则需要将java替换为java.exe的完整绝对路径,例如"C:\Program Files\Java\jdk1.8.0_301\bin\java.exe" - 确认
C:\Jenkins目录下存在agent.jar文件 - 确认节点名称
ComputerName、秘钥值与Jenkins主节点上对应节点的配置完全一致 - 确认代理节点可以正常访问Jenkins主节点的8080端口,无防火墙或网络策略拦截
内容的提问来源于stack exchange,提问作者Bilawal Wajid Ali
相关产品推荐
相关产品推荐

