如何修改Windows Jenkins的TEMP目录以解决脚本执行失败问题
解决Windows Jenkins临时目录权限问题:切换到D:\TEMP的方案
嘿,刚好处理过类似的场景,Jenkins在Windows下默认用系统的TEMP目录,没权限的话确实会搞砸Shell任务。给你几个靠谱的解决路径,按需选择:
方法一:修改Jenkins服务对应的环境变量(最推荐)
因为Jenkins大多以Windows服务运行,直接改服务关联的环境变量最精准,不会影响系统其他程序:
- 按
Win + R输入services.msc打开服务管理器,找到Jenkins服务右键点「属性」 - 先看「登录」标签页,确认服务用的是本地系统账户还是自定义账户
- 打开系统环境变量:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 如果是本地系统账户:在「系统变量」里找到
TEMP和TMP,编辑成D:\TEMP - 如果是自定义账户:在「用户变量」区域找到对应账户的
TEMP/TMP,改成目标路径
- 如果是本地系统账户:在「系统变量」里找到
- 回到服务管理器,重启Jenkins服务,新的环境变量就生效了
方法二:在Jenkins后台全局配置临时目录
不想碰系统环境变量的话,直接在Jenkins内部设置:
- 登录Jenkins后台,进入「Manage Jenkins」→「Configure System」
- 拉到「Global properties」部分,勾选「Environment variables」
- 点击「Add」添加两个变量:
- 变量名
TEMP,值D:\TEMP - 变量名
TMP,值D:\TEMP
- 变量名
- 保存配置后重启Jenkins,确保设置生效
方法三:修改Jenkins启动脚本(手动启动场景)
如果你的Jenkins不是以服务运行,而是用jenkins.exe或批处理手动启动的:
- 找到启动用的批处理脚本(比如
jenkins.bat) - 在脚本最开头添加两行:
set TEMP=D:\TEMP set TMP=D:\TEMP - 保存后重新启动Jenkins就行
必做检查
- 先确认
D:\TEMP目录已经创建好了,而且Jenkins运行的账户(不管是系统账户还是自定义账户)对这个目录有读写权限——右键目录→「属性」→「安全」,给对应账户添加读写/完全控制权限 - 改完后可以去Jenkins的「系统信息」(Manage Jenkins→System Information)里搜索
TEMP和TMP,看看是不是已经变成D:\TEMP了,验证配置成功
内容的提问来源于stack exchange,提问作者Optimus
相关产品推荐
相关产品推荐

