【问题标题】:Runing VBScript code for Outlook through a scheduler通过调度程序为 Outlook 运行 VBScript 代码
【发布时间】:2025-12-07 14:05:02
【问题描述】:

我为 Outlook 编写了一个 VBScript,它可以转发收件箱中超过 30 分钟未读的电子邮件。当我手动运行 vbs 文件时,它工作得很好,但是当我通过 Windows 任务计划程序触发时,它会卡住。似乎它没有命中 Outlook 并在 CreateObject(...) 语句处停止执行。

你能告诉我我应该怎么做吗?我想安排它每 30 分钟在 Outlook 上运行一次脚本。

【问题讨论】:

  • 有关您的代码的帮助:显示您的代码。有关无法作为计划任务运行的代码的帮助,还请显示计划任务配置。 Related.

标签: vbscript outlook taskscheduler


【解决方案1】:

当我手动运行 vbs 文件时,它工作得非常好,但是当我通过 Windows 任务计划程序触发时,它就卡住了。

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

如果您要构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将承担整体解决方案稳定性的风险。在Considerations for server-side Automation of Office 文章中阅读更多相关信息。

如果您只处理 Exchange 配置文件,作为一种解决方法,您可以考虑使用 EWS,请参阅EWS Managed API, EWS, and web services in Exchange。或适用于 Office 365 用户的 Outlook REST API,请参阅Get Started with Mail, Calendar, and Contacts REST APIs

您还可以考虑使用 Outlook 所基于的低级 API - 扩展 MAPI。或者只是围绕该 API 的任何其他第三方包装器,例如 Redemption。

【讨论】: