在Jenkins CI上打开Excel

我正在使用Windows 7(以会话1login),我的Jenkins CI在会话0中作为windows服务运行。我的问题是..我想通过会话0中的Jenkins CI打开一个Excel文件,但是想要在会话1上显示其GUI。

我知道会话0在Windows 7中是孤立的,但是可以在会话0中运行进程,然后在另一个会话中输出吗? 请帮忙。

编辑:
花了一些试验和错误,但这是最后为我工作(Windows 7 64位)。

  • 从Microsoft网站下载PsTools
  • 我们只需要psexec.exe ,但你可以提取一切。 提取到Jenkins可访问的某个位置,最好在路径中没有空格。
  • 打开提升的命令提示符:在开始的quicksearch中输入cmd ,右键单击cmd.exe ,选择Run as Administrator
  • 键入C:\path\to\psexec.exe -accepteula并按回车。
  • 键入C:\path\to\psexec.exe -i 1 cmd并按回车。 (如果你看到一个命令提示符出现,一切都很好,现在关闭它)
  • 在作业配置中,配置执行Windows批处理命令步骤
  • 写下以下内容:
    C:\path\to\psexec.exe -accepteula && C:\path\to\psexec.exe -i 1 cmd /c start C:\PROGRA~2\MICROSO~1\path\to\excel.exe

哪里:

  • C:\path\topsexec.exe的完整路径,除非它位于%path%
  • -i 1是要启动的会话ID。
  • C:\PROGRA~2\MICROSO~1\path\to不带空格的 excel.exe的完整路径。 由于大多数Office安装都将位于具有空格的路径下,如“Program Files(x86)”,所以您必须找出短路径,或将其放置在没有空格的地方。
  • %path%下运行excel.exe并从常规命令行工作是不够的

对那些关心的人做一点解释:

  • psexec需要先安装一个服务。 为此,需要首次使用提升的命令提示符运行。 这是一次性安装步骤。
  • 要使psexec正常工作,您需要接受EULA提示。 这是每个会话/用户完成的。 所以,即使在命令提示符下运行psexec -accepteula ,当Jenkins服务(以会话0中的本地系统运行)尝试使用它时,也不会psexec -accepteula 因此,你必须把这个放在Jenkins的工作中,连同命令。 从技术上讲,只需要在那里一次,之后就可以取下,但是保持在那里肯定不会有什么伤害。
  • 我已经使用cmd /k并从我的本地cmd提示符运行此命令进行调试。 这让我意识到我无法找到逃避空间的方法(尝试过各种引用),所以不得不求助于简短的文件名。 请注意,短文件名不是必需的,这只是为了逃避空间。

不,这不对-

加上任何UI交互都需要运行Jenkins作为Java web开始而不是服务,或者你不能与UI元素交互。