一.背景
之前徒弟在windows中安装的jenkins,运行的时候用的是java -jar jenkins.war来运行的。服务器只有1个盘符C盘。今天说构建错误了,问我修改了啥,我年前是修改过构建思路的。
二.问题分析
先看jenkins构建任务的日志,大概是xcopy命令执行报错提示“拒绝访问”。这个问题就非常明显了,是操作系统权限不够引起的。我把命令放到服务器去执行,没有报错。因此,2个调整思路快速冒出来:
1.提升jenkins的权限
2.增加D盘,把jenkins的工作空间从系统C盘移出来
考虑我们是内网服务器,风险基本可控,我选择了方法1.提升jenkins的权限。
三.具体实施
写了一个bat文件,准备通过java -jar jenkins.war来启动jenkins。但是权限怎么提升呢?找了百度,参考了文章让bat批处理以管理员权限运行的实现方法_DOS/BAT_脚本之家.
最后的bat内容是:
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"java -jar jenkins.war
至于前面那几行怎么就实现了bat获取到管理员权限的,没有详细去看,试试了好使。我能直接看懂的是cd /d "%~dp0",这句是cd到当前目录。
然后,把bat文件发送快捷方式到了桌面,方便后面启动。验证后,发现果然跟预想的一致,没有再报“拒绝访问”了。