为什么不是我的计划任务运行批处理脚本?

操作系统: Windows 2003 Server

安装:batch file基本上使用7zip压缩几个文件到一个位置准备通过FTP上传到异地的位置。 我已经运行了batch file,并且工作完美。 压缩文件需要大约两个小时。

我已将相关文件夹的完整权限应用于将执行计划任务用户帐户(我为此作业创build的非​​系统用户帐户)。 我已经将batch file设置为可由非pipe理员运行。 我已经确保用户有权访问所有相关的文件夹和文件,并允许运行7Zip。 我已授予用户帐户读取和执行计划任务的权限。

症状:如果我右键单击计划任务,然后select运行三个事件出现在安全日志中,显示用户正在login,然后几乎立即注销。 没有其他例外或错误出现。 预期的DOS窗口甚至不会闪烁进我的视野。 如果我手动运行批处理,则在批处理开始运行时,7zip上访问的date将会更新。 当计划的任务被选中运行它不。

我究竟做错了什么?

我不知道是否没有遇到CMD.EXE在不作为“INTERACTIVE”(或“BATCH”或“SERVICE”)运行时不能被非pipe理员用户读取的问题。 这是Windows Server 2003中的一个新默认设置。有关详细信息,请参阅此Microsoft知识库文章 。

像你的问题Soudns是7zip本身,我自己实际上有一个非常类似的进程设置,除非我作为具有pipe理员凭据的系统用户运行计划的任务。 正如FortyPoundHead所说,退出代码对于解决这个问题将是非常有用的。 此外,我会添加一些日志logging到你的batch file,看看它失败的地方,看看它是否收到7zip错误等没有某种日志logging,你将有一个hrad时间解决这个问题。

您是否将任务设置为使用正确的用户凭据运行? 什么是任务计划程序中的任务的完成代码(上次运行结果)? 你可能会看到0x2,0x40010004,或者其他的。

Charles在日志logging方面已经死气沉沉,但Sysinternals套件中的Process Monitor也可能对故障排除很有帮助。