0

最近我们将系统更新为 Office 2016。我有一个计划任务,它读取 MS Access DB 中的信息,然后通过 Outlook 将此信息发送给邮件收件人。在升级之前一切都很好。

计划任务会启动一个 .bat 文件,该文件会打开 MS Access、调用函数、执行任务,然后使用 Outlook 通过电子邮件发送信息。

当我通过双击手动运行批处理文件时,它会按预期工作并发送电子邮件。但是,当我通过任务计划程序运行时,它不起作用。我确定它会打开 MS Access 文件并且可以读取,但由于某种原因它无法发送电子邮件。我已降低所有安全设置无济于事。

计划任务以最高权限运行,升级前一切正常。

有没有人有什么建议。

4

2 回答 2

0

Outlook 具有可防止应用程序以编程方式通过它发送电子邮件的安全设置。它将使用弹出对话框请求发送电子邮件的权限。虽然我已成功摆脱弹出窗口并在 Outlook 打开时通过 Outlook 发送 Access(手动和作为计划任务),但当 Outlook 尚未打开时它仍然失败。

如果您有能力,最好的办法是在运行计划任务的计算机上保持 Outlook 处于打开状态。否则,您必须尝试找出策略和注册表/outlook 设置的组合将使 Outlook 按您希望的方式工作。

编辑:我的经验是使用 Windows 域/本地交换服务器环境。

于 2016-05-06T15:13:25.640 回答
0

几周前我们升级到 Office 2016,遇到了和你一样的问题。我们的批处理文件运行 Access 并触发将一些数据导出到文本文件的宏,并且在手动运行时工作正常。但是,当通过任务计划程序运行时,一切似乎都运行良好,但文本文件从未更新。在尝试了几周没有成功后,我终于找到了问题的原因,并找到了解决方案。

在我们的案例中,问题在于 Access 2016 希望作为前台应用程序运行。但是,当作为任务计划程序应用程序运行时(选中“无论用户是否登录运行”选项),它会将自己视为后台应用程序,因此不会运行。有关更多信息,请参见 Jim Dettman 的回答:https ://www.experts-exchange.com/questions/28988837/

接下来,我找到了 Microsoft 员工 Blake Morrison 的这篇文章,他在其中讨论了最新版本的任务计划程序的变化。他的故障排除建议之一对我们有用:

尝试创建一个新任务,但选择 Configure for: 选项为“Windows Server 2003、Windows XP 或 Windows 2000”——这将创建一个 XP/2003 风格的任务

不幸的是,您可能必须将此作为一项新任务执行 - 现有任务似乎不允许您选择此选项(它没有显示在我现有任务的下拉菜单中)。所以我对新任务的设置是:

  1. 以管理员帐户运行
  2. “无论用户是否登录都运行” - 选中
  3. “以最高权限运行” - 选中
  4. 配置:Windows Server 2003、Windows XP 或 Windows 2000

如果我手动触发任务,我会看到一个命令提示符打开,然后 Access 会短暂打开并消失(我们的宏最后有一个 Quit Access 命令),然后命令提示符消失。我们的文本文件的输出按预期写入。如果我安排它在我退出机器时运行,显然我什么也看不到,但文本文件再次按预期写入,所以我知道它有效。

于 2018-05-30T15:41:13.497 回答