Jenkins slave远程运行windows exe无窗口问题解决方法

         在使用jenkinsslave下发并执行exe的时候遇到一个很奇怪的问题,之前实验过程中能够正常执行的exe在实际部署的环境下运行后无法显示程序窗口,这样导致有界面行为的一些测试程序无法正常得到结果。

         经过一系列排查,基本确认该问题和jenkins的权限控制有关,尝试安装一个新的帐号及权限设置插件role-strategy后,重新在slave机器上运行,exe窗口能正常显示且程序正常工作。

尝试不用role-strategy插件,使用jenkins默认的” ConfigureGlobal Security”设置,启用安全并设置访问控制,问题也能解决:

         而重新在家里机器上和虚拟机上清空所有数据,然后不开启安全访问,竟然还是能够正常运行并显示exe窗口……,如此神奇。



补充:

      继续追查发现,该问题并不是因为jenkins的权限导致的问题,而是因为系统服务是以system启动的,他运行在session0,而桌面及其他GUI程序则运行在session1,2,3...以上,如果想以jenkins的服务来运行GUI的windows exe,则需要有一个由服务启动一个中间进程来进行session和权限切换。
     可参考:http://www.installsetupconfig.com/win32programming/windowsservicesapis5_7.html 和 http://msdn.microsoft.com/en-us/library/ms682429.aspx
      但是上面太麻烦了,为了简单起见,我们可以使用另外一种方式,在windows计划任务中启动一个批处理并且设置成系统登陆启动,批处理中运行slave的启动,如
javaws http://192.168.1.8/computer/192.168.1.110/slave-agent.jnlp


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值