You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux环境的Jenkins中调用远程Windows服务器的批处理文件?

我来给你梳理几个生产环境里常用的靠谱方案,帮你实现Linux上的Jenkins调用远程Windows的批处理文件:

方案一:使用Jenkins Windows Agent(从属节点,最推荐)

这是Jenkins原生支持的方式,稳定性和可维护性最好,适合长期使用。

  • 步骤1:在Windows服务器上配置Jenkins Agent

    1. 登录你的Linux Jenkins控制台,进入「Manage Jenkins」→「Manage Nodes and Clouds」→「New Node」
    2. 给节点起个好记的名字(比如Windows-Batch-Worker),选择「Permanent Agent」后点击「OK」
    3. 配置节点参数:
      • 远程工作目录:填Windows上的一个空文件夹路径(比如C:\Jenkins\Agent_Workspace)
      • 标签:输入windows-batch(方便后续任务指定节点)
      • 启动方式:选择「Launch agent by connecting it to the master」
    4. 保存后,页面会生成启动Agent的指令。在Windows服务器上下载对应的agent.jar,打开命令提示符,运行类似这样的命令(替换成你自己的Jenkins地址、密钥和工作目录):
      java -jar agent.jar -jnlpUrl http://你的LinuxJenkinsIP:8080/computer/Windows-Batch-Worker/slave-agent.jnlp -secret 你的密钥字符串 -workDir "C:\Jenkins\Agent_Workspace"
      
    5. 确保Windows上的Java版本和Jenkins Master兼容,同时防火墙允许Jenkins Master和Agent之间的通信。
  • 步骤2:创建Jenkins任务调用批处理

    1. 新建「Freestyle project」,在「General」 tab 勾选「Restrict where this project can be run」,输入刚才设置的标签windows-batch
    2. 构建步骤选择「Execute Windows batch command」,直接输入批处理文件的绝对路径(比如C:\Scripts\your_script.bat),也可以直接写批处理的命令内容
    3. 保存任务后运行,Jenkins会自动把任务分发到Windows Agent上执行,执行日志会同步到Jenkins控制台。

方案二:使用SSH插件远程执行(适合已开启Windows SSH服务的场景)

如果你的Windows服务器已经配置了OpenSSH服务,这个方法会更轻量化,不用部署Jenkins Agent。

  • 步骤1:确保Windows的SSH服务正常运行

    1. 打开Windows的「设置」→「应用」→「可选功能」,添加「OpenSSH服务器」
    2. 在「服务」里找到「OpenSSH SSH Server」,设置为自动启动并启动服务
    3. 配置防火墙允许22端口的入站连接,同时确保执行批处理的用户有足够权限。
  • 步骤2:在Jenkins上配置SSH服务器

    1. 进入「Manage Jenkins」→「Plugins」,搜索并安装「SSH plugin」
    2. 进入「Manage Jenkins」→「Configure System」,找到「SSH servers」模块,点击「Add」
    3. 填写Windows服务器的IP、端口(默认22)、用户名、密码(或SSH密钥),点击「Test Connection」确认连通性。
  • 步骤3:创建任务调用批处理

    1. 新建Jenkins任务,构建步骤选择「Execute shell script on remote host using ssh」
    2. 选择刚才配置的SSH服务器,在命令框里输入调用批处理的命令:
      cmd /c "C:\Scripts\your_script.bat"
      
      (因为Windows SSH默认用cmd环境,必须加cmd /c来触发批处理执行)

方案三:使用PsExec(临时测试用,不推荐长期生产)

这是微软Sysinternals的工具,无需在Windows上部署服务,但权限控制和稳定性不如前两个方案,适合临时快速测试。

  • 操作步骤
    1. 下载PsExec工具放到Windows服务器的某个路径(比如C:\Tools\PsExec.exe)
    2. 在Linux的Jenkins任务中,选择「Execute shell」构建步骤,运行类似命令(需要Linux上安装wine来执行Windows程序):
      wine C:\Tools\PsExec.exe \\Windows服务器IP -u 用户名 -p 密码 cmd /c "C:\Scripts\your_script.bat"
      
    3. 注意:这种方式需要处理权限、wine兼容性等问题,不建议用于长期运行的任务。

额外注意事项

  • 权限控制:不管用哪种方案,执行批处理的用户必须有足够的权限(比如读写批处理文件、访问相关系统资源)
  • 防火墙配置:确保Jenkins服务器和Windows服务器之间的通信端口开放(比如Agent的随机端口、SSH的22端口)
  • 日志排查:Jenkins会记录所有执行输出,如果批处理执行出错,可以直接在任务日志里查看具体报错信息

内容的提问来源于stack exchange,提问作者user1635508

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:04:13