操作系统:Windows 2003 服务器
设置:该批处理文件基本上使用 7zip 将一些文件压缩到一个位置,以便通过 FTP 上传到异地。我以自己的身份运行了该批处理文件,它运行良好。压缩文件大约需要两个小时。
我已将相关文件夹的完整权限应用于将执行计划任务的用户帐户(我为此作业创建的非系统用户帐户)。我已将批处理文件设置为非管理员可运行。我已确保用户可以访问所有相关文件夹和文件,并被允许运行 7Zip。我已授予用户帐户读取和执行计划任务的权限。
症状:如果我右键单击“计划任务”并选择“运行”,安全日志中会出现三个事件,显示用户正在登录,然后几乎立即注销。没有出现其他异常或错误。预期的 DOS 窗口甚至没有在我的视野中闪烁。如果我手动运行批处理,则 7zip 上访问的日期将随着批处理开始运行的时间而更新。当选择运行计划任务时,它不会。
我究竟做错了什么?
答案1
我想知道您是否遇到了 CMD.EXE 不以“INTERACTIVE”(或“BATCH”或“SERVICE”)运行时无法被非管理员用户读取的问题。这是 Windows Server 2003 中的新默认设置。看一看参见此 Microsoft 知识库文章了解详细信息。
答案2
听起来你的问题与 7zip 本身有关,实际上我自己也设置了一个非常类似的过程,只是我以具有管理员凭据的系统用户身份运行计划任务。正如 FortyPoundHead 所说,退出代码对于解决这个问题非常有用。此外,我会在你的批处理文件中添加一些日志,以查看它在哪里失败,查看它是否收到 7zip 错误等。如果没有某种日志记录,你将很难解决这个问题。
答案3
您是否将任务设置为使用正确的用户凭据运行?任务计划程序中任务的完成代码(上次运行结果)是什么?您可能会看到 0x2、0x40010004 或类似的代码。
答案4
Charles 对日志记录非常了解,但 Sysinternals 套件中的进程监视器对于故障排除可能也很有用。