我在Windows 10计算机上运行Jenkins服务器作为服务。在其中一个Jenkins-jobs中,我必须使用COM应用程序执行测试。开发人员在RDP的日常工作中也使用同一台计算机,并且当没有常规开发人员使用它时,Jenkins-job工作在晚上运行。但是,如果没有用户登录计算机或使用RDP,则作业中的脚本无法使用以下消息启动COM应用程序:
无法启动服务器进程,因为配置的标识不正确。检查用户名和密码。
我发现问题似乎是COM应用程序的标识取自当前的交互式用户,如果没有,则失败,请参阅
我似乎无法解决我的问题。我看到两个选择:
对于1我看到以下解决方案以及它们不起作用的原因:
tscon.exe 0 /dest:console
退出,这将使会话保持打开状态。由于我们在团队中使用该机器的人数超过RDP,因此无法工作,人们将忘记在当天结束时使用此命令。对于2,我无法找到这样做的方法。
我可以在Windows中安排用户在作业开始前自动登录吗?在作业执行之前,我可以使用第二台计算机并为第一台计算机安排RDP会话吗?
由于没有人能够提供一个好的解决方案,我会输入我的workardound作为答案和可能的解决方案。我最终做的是使用第二台计算机(运行Windows)并在该计算机上安排一项任务,每晚(在Jenkins工作开始之前)打开一个RDP会话到运行Jenkins的计算机。通过这种方式,Jenkins作业和COM应用程序具有可以使用的活动用户。
这就是我实现这个目标的方式:
mstsc C:\Path\To\saved_rdp_file.rdp
tasklist /FI "imagename eq mstsc.exe" | find "mstsc.exe" && taskkill /f /im mstsc.exe || echo process "mstsc.exe" is not running