我试图创build一个夜间任务,将我的SQL Server数据库下载到MSAccess 2010作为一个“夜间快照”,到目前为止,我有它的工作。
我创build了一个空白数据库,里面有macros,它可以执行导入,然后优雅地退出。 它在我的用户名下工作得很好:
@echo off For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b) set dest=c:\temp\%mydate%-RAVEN.accdb xcopy BLANK_RAVEN_WITH_MACROS.accdb %dest%* /Y start "C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" %dest% /X IMPORT_RAVEN
但是,当我以SYSTEM用户身份运行任务时(注意 – 我不应该将任务作为我自己的用户名运行)没有任何反应。
logging,SYSTEM用户确实有权访问我的其他数据库和SYSTEM帐户可以将MS Access空白文件复制到目标。 但是Access没有任何反应。 我只是将MSAccess作为SYSTEM无限期地在后台运行。 它永远不会退出
我如何运行MSAccess并通过SYSTEM用户帐户运行一个macros?
Microsoft Access应用程序(MSACCESS.EXE)旨在由“真实”的用户运行,因此它可能会对其正在执行的环境作出一些假设。 其中一个假设可能是它所运行的帐户有可以存储和检索程序设置的标准位置,例如文件系统中的%USERPROFILE%和注册表中的HKEY_CURRENT_USER。 如果这些位置在像SYSTEM这样的帐户下运行,则MSACCESS.EXE可能会挂起。
如果可能,请创建一个具有最低必要权限的帐户,并在该帐户下运行“计划任务”。