Ms access 从Windows任务计划程序运行accessDb 2016 Makro

Ms access 从Windows任务计划程序运行accessDb 2016 Makro,ms-access,ms-office,scheduler,Ms Access,Ms Office,Scheduler,我有一个AccessDB宏要从windows任务计划程序运行,它需要访问运行任务的用户的映射网络驱动器 在遇到一些最初的问题后,我发现,自access 2016以来,当access db作为后台进程执行时,宏不会运行。因此,我将计划任务的类型切换到Windows 2003/XP,它仍然在前台执行任务 问题显然是,使用这种类型的任务,网络连接不再可用 是否有一种方法可以运行Windows 2003/XP类型的任务,同时仍保留执行任务的用户的映射网络驱动器和网络连接 我通过 "path/t

我有一个AccessDB宏要从windows任务计划程序运行,它需要访问运行任务的用户的映射网络驱动器

在遇到一些最初的问题后,我发现,自access 2016以来,当access db作为后台进程执行时,宏不会运行。因此,我将计划任务的类型切换到Windows 2003/XP,它仍然在前台执行任务

问题显然是,使用这种类型的任务,网络连接不再可用

是否有一种方法可以运行Windows 2003/XP类型的任务,同时仍保留执行任务的用户的映射网络驱动器和网络连接

我通过

"path/to/msaccess.exe" "path/to/db.accdb" /X RunMacro

这可能是由SMB网络协议引起的

Windows XP不了解SMB2/3,而Windows 10默认情况下不激活SMB1,因为存在潜在的安全风险


但是,在Windows 10中激活SMB1很简单(功能选择)。因此,如果您能够承受这种安全风险,您可以尝试激活SMB1协议,看看这是否会有所不同。如果没有,它可以很容易地停用。

Windows任务计划程序不是最佳解决方案。Microsoft声明如下:

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

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

如果您正在构建一个在服务器端上下文中运行的解决方案,那么您应该尝试使用安全的组件来无人值守地执行。或者,您应该尝试找到至少允许部分代码在客户端运行的替代方案。如果使用服务器端解决方案中的Office应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将面临整体解决方案稳定性方面的风险


请阅读本文中的更多信息。

SMB1不是一个选项。安全风险将远远超过自动化带来的任何好处。也许另一种调度机制将与使用hangfire或类似工具的长时间运行的流程一起工作。然后,该选项将被排除。因此,找到另一个调度程序。可以找到许多用于浏览的驱动器,如.Hangfire。普通的“映射网络驱动器”是在登录时为每个用户映射的。可以在启动时将网络驱动器映射为设备,这样所有进程都可以看到它们,但我现在懒得去查找。