0

我继承了一个 C# 程序,该程序用于使用 PDFCreator 1.2.3、MapInfo Professional 11、Word 2003 和 Excel 2003 在 Windows XP Pro SP3 上自动创建每日报告。这台 Win XP 计算机位于 Active Directory 域中,并且C# 程序作为域用户(具有管理权限)运行,用户登录并锁定桌面。Word 2003 可以自动打开模板、从模板创建文档并保存文档——所有这些都来自网络共享。Excel 2003 用于打开电子表格,其中包含链接到 ODBC 数据源的表格并刷新表格,将新数据拉入电子表格。MapInfo 用于从 ODBC 数据源生成地图图像。PDFCreator 用于获取电子表格、word 文档和图像,并将它们全部组合成每日报告。

随着 XP 的生命周期结束,我已将此程序移至 Win 8.1 EE 虚拟机(在同一域中)并安装了 Office 365 产品(Word 2013 和 Excel 2013)以及 PDFCreator 1.7.1 和 MapInfo Professional 12 用于自动创建此每日报告。该程序在新 VM 上手动运行时正常运行,但在与计划任务相同的用户身份运行时失败。此计划任务设置为以最高权限运行,并在用户未登录时运行。

我意识到这里有很多变数。操作系统必须更改,我们不再使用旧版本的 Office,我也无法获得旧版本的 PDFCreator 或 MapInfo。因此,我将把问题集中在我可以控制的事情上。我知道我在执行此操作时遇到的问题,但我不清楚现在是否真的可以这样做,因为我被要求尝试使用新的操作系统和应用程序(即 Word 2013 和 Excel 2013)让它工作。

因此,问题是:如何使用任务计划程序从 C# Interop/COM 程序自动化 Word 2013,以在用户登录并锁定桌面的情况下运行程序?

4

2 回答 2

1

来自 Microsoft Docs - Office 服务器端自动化的注意事项

所有当前版本的 Microsoft Office 都经过设计、测试和配置,可作为最终用户产品在客户端工作站上运行。他们假设一个交互式桌面和用户配置文件。它们不提供满足设计为无人值守运行的服务器端组件的需求所必需的可重入性或安全性级别。

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。

我知道它没有回答有关 Office 365 的问题,但我认为这与您将要得到的一样接近。我还发现了这篇文章:HOWTO:配置 Office 应用程序以在交互式用户帐户下运行

于 2014-04-14T13:43:47.883 回答
0

我发现的答案是,当在 Windows XP Pro SP3 上运行并选择以管理员身份运行和无论是否登录都运行的选项时,这样的任务无法与相同的任务/用户一起使用/permissions 在 Windows 8.1 EE 下。

任务成功运行,选项以管理员身份运行,如果未选择未登录则运行。

对于其他从 Win XP 迁移旧程序/任务的人,因为它们由于生命周期结束而退役,您可能需要尝试删除以管理员身份运行,如果未登录则运行新版本 Windows 任务计划程序中任务的选项.

于 2014-04-21T15:34:34.060 回答