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

Windows环境下Jenkins Pipeline无法识别sh.exe问题求助

解决Windows下Jenkins Pipeline sh命令执行失败的方案
  • 直接指定sh.exe完整路径调用
    绕开Jenkins对sh命令的路径解析,直接调用Git的shell执行脚本,示例:

    bat '"C:\\Program Files\\Git\\bin\\sh.exe" -c "你的shell命令内容"'
    
  • 检查节点级环境变量配置
    全局属性的路径可能未生效到流水线运行的节点,按以下步骤配置:

    1. 进入Jenkins管理页面 → 管理节点和云 → 选中运行流水线的节点(如master)
    2. 点击节点的配置 → 找到节点属性下的环境变量
    3. 添加PATH变量,值为${PATH};C:\Program Files\Git\bin;C:\Program Files\Git\usr\bin(用分号拼接原有路径与Git路径)
    4. 保存后重启Jenkins节点,重新运行流水线
  • 手动指定Jenkins的Shell路径
    直接修改Jenkins默认的Shell可执行文件路径:

    1. 进入Jenkins管理页面 → 全局工具配置
    2. 找到Shell配置项(无则需先安装对应插件)
    3. 将Shell可执行文件路径设置为C:\Program Files\Git\bin\sh.exe
    4. 保存后重新运行流水线测试
  • 在Pipeline内临时追加PATH
    在流水线脚本开头显式设置环境变量,确保Git路径被优先识别:

    pipeline {
        agent any
        environment {
            PATH = "C:\\Program Files\\Git\\bin;C:\\Program Files\\Git\\usr\\bin;${env.PATH}"
        }
        stages {
            stage('Test') {
                steps {
                    sh 'echo $PATH'
                    sh '你的shell命令内容'
                }
            }
        }
    }
    
  • 验证Jenkins用户权限
    确保Jenkins服务运行的用户(通常是Local System或指定服务用户)拥有C:\Program Files\Git\bin\sh.exe的读取和执行权限:

    1. 右键C:\Program Files\Git文件夹 → 属性 → 安全
    2. 检查Jenkins服务用户是否在权限列表中,且拥有读取和执行权限
    3. 无权限则添加用户并赋予对应权限,之后重启Jenkins服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:25:28