每晚将数据库备份到MS Access的任务

时间:2016-01-26 00:48:20

标签: sql-server database windows ms-access scheduled-tasks

我正在尝试创建一个夜间任务,它将我的SQL Server数据库下载到MSAccess 2010中作为"夜间快照"到目前为止,我有它的工作。

我创建了一个空白数据库,里面有宏,可以执行导入,然后正常退出。它在我的用户名下运行良好:

@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用户身份运行任务时(注意 - 我不应该将任务作为我自己的用户名运行)没有任何反应。

对于记录,SYSTEM用户可以访问我的其他数据库,SYSTEM帐户可以将MS Access Blank文件复制到Destination。但Access没有任何反应。我只是看到MSAccess在后台无限期地作为SYSTEM运行。它永远不会退出

如何运行MSAccess并通过SYSTEM用户帐户运行宏?

1 个答案:

答案 0 :(得分:1)

Microsoft Access应用程序(MSACCESS.EXE)旨在由" real"用户因此可能会对其执行的环境做出一些假设。其中一个假设可能是它运行的帐户具有可以存储和检索程序设置的标准位置,例如文件系统中的%USERPROFILE%和注册表中的HKEY_CURRENT_USER。如果在SYSTEM等帐户下运行时这些位置不可用,则MSACCESS.EXE可能会挂起。

如果可能,请创建一个具有最低必要权限的帐户,然后在该帐户下运行预定任务。