通过任务计划程序在 AWS Workspace 中运行 Excel Interop:寻求建议

问题描述 投票:0回答:1

我有一个使用 EPPlus 更新 Excel 文件的流程,当使用任务计划程序安排在特定时间运行时,这部分工作正常。

但是,现在我需要更新外部数据连接、数据透视表等,我正在使用 Excel Interop 来执行此操作。这就是问题开始的地方:只有当进程以交互方式运行时(即,当用户登录时),我才能成功运行这部分。

当我通过任务计划程序运行它并设置“仅在用户登录时运行”时,它可以工作,但如果我关闭连接,或者 AWS 工作区重新启动,任务将无法启动,并出现错误“启动条件不正确”已满足,用户未登录。”我尝试过使用 PsExec,它几乎解决了问题,但它引入了新问题。

我的问题是:有没有办法在 Windows 上安排涉及运行 Excel Interop 等交互式进程的任务?我愿意开发 Windows 服务,但我怀疑我会遇到类似的问题。

有人对确保 Excel Interop 可以通过任务计划程序或其他方法成功运行的最佳方法有建议吗?

我的尝试和结果:

  • 尝试仅启动 .exe 和参数的任务计划程序 - 收到错误,表示无法访问该文件(交互运行时相同进程不会出现此错误)
  • 尝试“仅在用户登录时运行” - 似乎用户会话不会持续并且任务不会触发
  • 尝试使用 psexec 运行:“psexec -i” - 不起作用(似乎在会话 0 中运行)并且与仅使用 exe 和 prameters 运行有相同的问题
  • 尝试使用 psexec 运行:“psexec -i 1” - 它在会话 1 上运行,但控制台有问题(不显示任何内容,甚至 Windows 按钮也丢失 - 用于关闭和最小化控制台的按钮)
  • 将任务更改为调用 .bat,但遇到了相同的问题
.net-core scheduled-tasks epplus excel-interop
1个回答
0
投票

对于将来遇到此问题的任何人:可以通过非交互式任务运行 Interop。我能够通过调整 CSOM 设置来使其工作。步骤如下:

  1. 打开dcomcnfg 按 Win + R 打开“运行”对话框。 输入 dcomcnfg 并按 Enter 键。这将打开“组件服务”窗口。
  2. 导航至 Microsoft Excel 应用程序 在“组件服务”窗口中,展开以下内容: 组件服务 → 计算机 → 我的电脑 → DCOM 配置。 向下滚动列表,直到找到 Microsoft Excel 应用程序。 条目按字母顺序列出,因此它将位于中间。
  3. 为 Excel 配置 DCOM 属性 右键单击 Microsoft Excel 应用程序并选择属性。

将打开一个新窗口。现在按照以下步骤配置权限:

常规选项卡:

确保身份验证级别设置为默认。 安全选项卡:

在“启动和激活权限”下,单击“自定义”,然后单击“编辑”。

添加运行任务计划程序作业的用户帐户并授予其以下权限:

本地启动:允许 远程启动:(仅当您计划从另一台计算机运行 Excel 时) 本地激活:允许 远程激活:(仅当从另一台计算机运行时) 在访问权限下,单击自定义,然后单击编辑。

添加运行任务的用户或服务帐户,并根据需要为其授予访问权限。 身份标签:

在此处选择您希望 Excel 运行的方式。您有三个选择: 交互式用户:仅当用户登录时才运行 Excel。 启动用户:这将使用启动任务的用户运行 Excel。 此用户:您可以指定特定的用户帐户(提供用户名和密码)来运行 Excel。 如果您希望 Excel 作为后台任务运行,请选择此用户并提供具有必要权限的用户的凭据。

  1. 重新启动DCOM服务 为 Excel 配置 DCOM 后,您可能需要重新启动 DCOM 服务。您可以通过重新启动机器或使用以下步骤来完成此操作:

打开服务(按Win + R,输入services.msc,然后按Enter)。 查找 DCOM 服务器进程启动器。 右键单击并选择重新启动。

© www.soinside.com 2019 - 2024. All rights reserved.