在 Jenkins CI 上打开 Excel

2023-11-25

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

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


Edit:
经过一些尝试和错误,但这最终对我有用(Windows 7 64 位)。

  • 下载PsTools来自微软网站
  • 我们只需要psexec.exe,但你可以提取所有内容。提取到 Jenkins 可访问的某个位置,最好路径中没有空格。
  • 打开提升的命令提示符:键入cmd进入开始的快速搜索,右键单击cmd.exe, 选择Run as Administrator.
  • Type C:\path\to\psexec.exe -accepteula并按回车键。
  • Type C:\path\to\psexec.exe -i 1 cmd并按回车键。 (如果您看到出现命令提示符,则一切正常,立即关闭它)
  • 在作业配置中,配置执行Windows批处理命令 step
  • 写下以下内容:
    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

Where:

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

给关心的人一点解释:

  • psexec需要先安装一个服务。为此,第一次需要从提升的命令提示符运行它。这是一次性安装步骤。
  • To make psexec工作时,您需要接受 EULA 提示。这是针对每个会话/用户完成的。所以即使你跑psexec -accepteula在命令提示符中,当 Jenkins 服务(在会话 0 中作为本地系统运行)尝试使用它时,它没有帮助。因此,您必须将其与命令一起放入 Jenkins 作业中。从技术上讲,它只需要存在一次,之后就可以删除,但保留它绝对没有坏处。
  • 我用过cmd /k并从本地命令提示符运行此命令进行调试。这让我意识到我无法找到一种方法来转义空格(尝试了各种引用),因此不得不求助于短文件名。请注意,短文件名不是必需的,这只是为了转义空格。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Jenkins CI 上打开 Excel 的相关文章

  • Jenkins GIT 包含从未构建过的区域

    我正在尝试使用包含区域在 Jenkins 中构建我的工作 但每当选中此选项时 民意调查结果总是说未检测到任何更改 我尝试了许多不同的路径 以及使用工作区进行 不进行强制轮询 结果是轮询从未检测到任何更改 但一旦我删除这些选项 它们就会在下一
  • 为什么 Jenkins SVN 插件在连接到我的 VisualSVN 服务器时会出现错误 E170001?

    我对 VisualSVN 服务器的了解 它支持 Windows Active Directory 身份验证和使用我的 Windows 用户名和密码的 基本 身份验证 我可以成功使用 TortoiseSVN CollabNet 和 Mac O
  • 卸载以前的版本安装新版本的安装项目

    我创建了一个安装项目并安装在Windows系统中 在安装安装项目之前 我将其设置为 DetectNewInstallerVersion true and RemovePreviousVersion True 我也每次都换版本 但是 如果我重
  • Sencha Cmd 5 + Java 8 错误

    在我的 Windows 构建服务器上安装 Java 8 JDK 后 执行以下命令时遇到以下错误sencha命令 C gt sencha Error Registry key Software JavaSoft Java Runtime En
  • 当我启动 Windows 命令提示符时,我做了什么导致环境变量发生更改?

    我使用的是 Windows 10 x64 我安装了 Anaconda3 如果我启动 C Windows system32 cmd exe 时没有运行任何其他内容 并且在我可以看到的后台中没有任何有趣的内容 则以下内容将添加到控制面板 UI
  • 将 kinit 与 keytab 文件一起使用时会发生什么

    希望对kinit和keytab文件的使用有更多的了解 例如 如果我已经为某个服务生成了一个密钥表文件 该服务通过以下方式注册到活动目录 ktpass mapuser to someuseraccount ktab k mykeytab a
  • 将 value 转换为 bool 的魔法

    今天我意识到将值转换为 bool 是一种魔法 int value 0x100 unsigned char uc static cast
  • SetWindowsHookEx 函数返回 NULL

    我正在研究 DLL 注入 但收到错误如下 挂接进程失败 87 参数不正确 目标进程和dll都是64位的 注入代码为 BOOL HookInjection TCHAR target TCHAR dll name https msdn micr
  • 供所有 Win32 程序员在 Windows Aero Glass(DWM、GDI、GDI+)上绘图的文档和 API 示例

    我正在寻找良好的资源来学习使用 Win32 GDI API 或任何替代它的内容 以便使用 Win32 API 直接在玻璃窗体上进行绘制和绘制 当我使用 Delphi 时 我将其标记为 Delphi 或 Visual C 您能找到的任何代码示
  • 相对文件路径的区别:Qt Creator的调试模式和发布模式

    QFile file test txt if file open QIODevice ReadOnly qDebug lt lt You got me 我在用 Qt 4 8 6 与 MSVC 2010 Qt 创建者 3 1 1 Window
  • C# 获取子窗口句柄

    我正在用 C 启动一个进程 然后使用 SendMessage 将 Windows 消息发送到该进程 通常我将消息发送到 Process MainWindowHandle 但在某些情况下 我可能需要找到子窗口句柄并向那里发送消息 我将如何在
  • Jenkins Slave 自我注册

    我正在创建一个 Jenkins 主 从集群 但我无法找到一种方法让新的从服务器自动向主服务器注册 我当前的设置是运行一些 Terraform 脚本来创建主服务器和 5 个从服务器 然后我必须登录主节点并管理 Jenkins gt 管理节点
  • 如果我使用客户端计算机上未安装的字体,会发生什么情况?

    有人可以告诉我 如果我在 WinForms 应用程序中使用目标计算机上不可用的字体 会发生什么情况 它是否使用同一系列的字体 只是 Sans Serif 还是其他字体 您的应用程序将回退到 Segoe UI Tahoma 然后是 MS Sa
  • 无法访问127.0.0.1

    我不知道这种情况何时开始发生 但结果是 127 0 0 1 无法在任何地方的任何端口上工作 例如 浏览器显示无法连接 以下是我的研究结果 localhost COMPUTER NAME 和实际 IP 地址都工作正常 我的主机文件中没有什么特
  • MINIDUMP_TYPE 枚举值的哪种组合将为我提供最“完整”的小型转储?

    我希望我的应用程序创建一个小型转储以帮助调试未处理的异常 在创建转储之前 我可能不知道我需要什么类型的小型转储 那么什么组合小型转储类型 http msdn microsoft com en us library ms680519 28v
  • 用于绘制音符的库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以以某种方式在屏幕上绘制音符的 Windows 库 我将使用它用 C 编写一个应用程序
  • 如何使用命令行压缩指定文件夹

    你们能告诉我如何将指定的文件压缩到同一个 Zip 文件中吗 让我告诉我我的文件夹是如何填充的 任务调度程序有我的数据库的备份 并每天将它们保存到文件中 它每天创建 4 个数据库备份 这意味着每天会多出 4 个文件 因此 我需要将新创建的备份
  • Hudson 构建时趋势插件?

    是否有一个插件可以让我为 hudson 构建创建一个 趋势 图 显示该项目的构建时间 我的任务是加快构建速度 并且我想在加速过程中展示出良好的趋势 这是开箱即用的支持 http SERVER hudson job JOBNAME build
  • 从 vbscript 获取 bat 中的错误级别

    我试图确定用户是否在 UAC 提示中单击 否 如果是 则不设置空端口 我将此脚本称为批处理文件 如果用户单击 否 我想退出该脚本 VB 脚本 选项显式 Main Sub Main Dim oShell objWMIService servS
  • 调整 CMD 窗口大小

    如何在 C 或 C 中以编程方式调整命令提示符窗口的大小 例如 80x25 或 80x40 字符 先感谢您 SetConsoleWindowInfo http msdn microsoft com en us library ms68612

随机推荐

  • NotificationCompat android - 如何仅显示大图标而不显示小图标

    当我添加通知时 NotificationCompat Builder mBuilder new NotificationCompat Builder this setSmallIcon R drawable plus setContentT
  • 不变是什么意思?

    到底是做什么的不可变的意思是 也就是说 对象可变或不可变会产生什么后果 特别是 为什么 Java 的String是不可变的吗 我的理解是StringBuilder类型类似于可变的等价物String 我什么时候用StringBuilder而不
  • 使引导弹出窗口重叠

    我的问题是我正在使用引导弹出窗口来显示图像 使用悬停作为触发器 同时我正在使用平滑滚动 http www smoothdivscroll com quickdemo 但问题是 弹出窗口的那部分是隐藏的 Example https dzwon
  • MySQL数据库中如何存储日期?

    我有约会在dd mm yyyy格式 如果我想以后对其进行一些操作 如何将其存储在数据库中 例如 我必须找出行 其中date gt something 我必须设置什么类型date field 要在 MySQL 中存储日期或时间 请使用date
  • 使用 2 个不同的变量进行排序和填充 geom_bar ggplot2 R

    我有一个关于填写字段的问题geom barggplot2 包的 我想用一个变量填充我的 geom bar 在下一个示例中 该变量称为var fill 但订购geom plot与另一个变量 称为clarity在示例中 我怎样才能做到这一点 非
  • iOS 8 中的 shouldAutorotate 行为

    我发现 7 1 和 8 之间有一个小的行为变化UIViewController shouldAutorotate方法 苹果查看控制器编程指南指出在执行任何自动旋转之前调用此方法 但是我注意到 当我简单地禁用 shouldAutorotate
  • 与主管一起运行 celeryd_multi

    我正在与 djcelery 和主管一起工作 我正在与主管一起运行芹菜 一切正常 一旦我意识到我需要将其更改为芹菜多 一切都崩溃了 如果我在终端中运行 celeryd multi 它可以工作 但总是在后台运行 就像主管需要在出现问题的前台运行
  • 在 CustomUIView 中重写 init() 会导致应用程序崩溃(EXC_BAD ACCESS)

    我正在尝试在 Swift 中子类化 UIView 然而 当调用初始化程序时 应用程序崩溃 EXC BAD ACCESS 这是班级 class CustomActionSheet UIView private var cancelButton
  • 如何使用 Selenium WebDriver 获取所有链接并一一单击这些链接

    我正在使用 Selenium WebDriver 和 java 我正在从网页中获取所有链接并尝试一一单击每个链接 我收到以下错误 错误 org openqa selenium StaleElementReferenceException 在
  • 分而治之,动态规划和贪心算法!

    当我遇到最优子结构的问题并且没有子问题共享子子问题时 我可以使用分治算法来解决它吗 但是当子问题共享子子问题 重叠子问题 时 我可以使用动态规划来解决问题吗 它是否正确 贪心算法与动态规划有何相似之处 当我遇到最优问题时 子结构且无子问题股
  • 如何在 RxJava 中处理 onError。我收到“OnErrorNotImplementedException”

    在我的应用程序中 我使用 ReactiveLocationProvider 库 link 我在 onCreate 方法中订阅更新 当设备在线时它工作正常 但如果我关闭 WiFi 并等待下一个后台位置更新设备 则会出现 OnErrorNotI
  • 尝试让 log4net 与 PowerShell 一起工作(混合使用 log4net 配置文件)

    我一直在努力让 log4net 与 PowerShell 一起使用 我有以下 PowerShell 代码 它使用配置文件拉入 log4net 然后尝试创建一个简单的日志文件条目 但出现错误 Clear History Clear Host
  • 如何在 Gitlab CI 中使用 Dockerfile

    将 gitlab ci 用于我的节点 反应应用程序 我正在尝试使用phusion passenger nodejs作为基础 docker 镜像 我可以在 gitlab ci yml 中轻松指定这一点 image phusion passen
  • 解释 bash 中数组长度的 ${#arrayname[@]} 语法?

    我知道可以通过以下方式获取 bash 中数组的长度 arrayname 我的问题是 这只是我必须记住的东西 还是可以将此语法分解为可以理解的部分 例如 什么是 符号意味着人们期望在哪里找到索引 为什么 在变量引用的开头意味着获取变量值的长度
  • Java:消除死代码

    我想知道Java如何处理以下情况 假设我有一个名为 Debug 的类 它看起来像这样 public class Debug private static final boolean isAssertEnabled true public s
  • 如何查找内核模块中的物理和逻辑核心数?

    Linux 中是否有内核函数可以返回物理核心的数量和 正在运行内核模块的逻辑核心 在超线程的情况下 看看最后include linux smp h smp processor id 给出当前正在执行的 CPU 的编号 get cpu 会做
  • 使用 PHP 在 CSV 文件中写入逗号

    我正在发送一个 csv 文件作为标题 并且我想使用逗号 不是为了分隔 只是为了使用 我该怎么做 我正在使用 PHP 但我无法使用fputcsv因为我将其作为标题发送 只需使用 value 围绕着它 一切都会好起来的
  • 如何使用邮递员将请求传递给 sagemaker

    我已经在 sagemaker 上训练了一个模型并创建了端点 我正在尝试使用邮递员调用端点 但是在训练模型时甚至之后 我没有为训练数据指定任何标题 我不知道如何在向 sagemaker 发送发布请求时创建有效负载 以下是调用快速入门指南中创建
  • 获取对象的活动引用

    我正在寻找一个托管 非托管 API 它允许我找到哪些对象引用另一个对象 并可能阻止它被垃圾收集 这样的 API 可能如下所示 var foo new Foo var bar new Bar bar Foo foo var reference
  • 在 Jenkins CI 上打开 Excel

    我正在 Windows 7 上工作 作为会话 1 登录 我的 Jenkins CI 在会话 0 中作为 Windows 服务运行 我的问题是 我想在会话 0 中通过 Jenkins CI 打开一个 Excel 文件 但想在会话 1 上显示其