在Jenkins上以管理员身份运行批处理文件?

时间:2014-12-11 00:15:53

标签: batch-file azure jenkins msbuild administrator

我们在Win8 x64上使用Jenkins来构建(msbuild),package(cspack),run(csrun)和测试(nunit)一个azure云服务项目。 Azure云服务模拟器需要以管理员身份运行,我们需要绑定到端口80/443(因此无法使用" lite"模拟器)。

我们通过Jenkins运行的简单.bat文件来完成上述操作。通常没有用户登录到计算机,它启动并且Jenkin的服务作为一项服务运行,持续监控我们的GIT仓库和电子邮件的故障。管理员手动登录机器进行维护(例如,应用补丁或重启机器等)

我们如何配置Jenkins以管理员身份运行该.bat而无需人工干预?

使用桌面UI,我们可以右键单击命令提示符,以管理员身份运行,确认UAC提示,获取提升的权限提示并运行.bat文件。

4 个答案:

答案 0 :(得分:20)

我们的解决方案是将Jenkins的服务作为单独的本地管理员用户运行。安装Jenkins后,Start => 'services'=>滚动到Jenkins服务=>右键单击=> properties => “登录”=> “此帐号”=>指定本地管理员帐户。

希望在较新的Jenkins版本中,它可以作为标准的网络服务工作,但出于某种原因,它不适用于我们的盒子。

答案 1 :(得分:2)

其中一个解决方案:

  1. 在slave中创建bat文件。
  2. 创建文件的快捷方式,然后右键单击快捷方式,属性 - >高级 - >检查运行 管理员。
  3. 控制面板 - >系统和安全 - >行动 中心 - >更改用户帐户控制设置并将级别设置为 “永远不要通知”。
  4. 在Jenkins上运行文件
  5. 不知何故,该文件将在从属服务器上执行,但它会在Jenkins上返回失败。

答案 2 :(得分:0)

如果您以管理员身份登录widows机器并从该用户运行slave代理,则所有内容都将在管理员用户下运行

答案 3 :(得分:0)

这是我的情况:

我需要使用管理员特权控制台来运行pywinauto脚本(以python编写),以自动化一些需要管理员特权的应用程序。

我尝试过的:

  1. 以我的经验,将Windows Jenkins slave作为服务安装会引起更多问题,因此,我不走这条路。
  2. 要创建一个新进程,它将打开一个新的admin特权shell并在其上运行命令。但是,以这种方式,詹金斯将不会显示其输出,例如在Blue Ocean中。

对我有用的东西

  1. 只需手动打开一个具有管理员特权的控制台即可启动your_window_node.jnlp文件,然后此Jenkins从属将具有管理员特权。