Server 2008问题运行batch file

对于我的生活,我似乎无法获得在Server 2008任务计划程序中运行的batch file,尽pipe它没有我以前见过的常见问题。

迄今为止的问题

  • 我有一个batch file,需要一些存储库和ZIP的热备份。 我能够手动运行。
  • 我在任务计划程序中创build了一个任务来调用batch file(不包括引号,没有命令行参数)。
  • 无论如何,任务返回代码0x1(我相信这与权限有关)。

目前为止的故障排除步

  • 手动执行任务。 运行完美。
  • 由于之前在ServerFault上列出的2008 Server修复程序错误,确保我没有引用参数。 我不但没有引证,而且也没有论据。
  • 将输出redirect到日志文件以查看它是否正在运行。 事实并非如此。
  • 将用户从系统服务帐户更改为本地pipe理员帐户用于testing目的。 pipe理员帐户具有所有必要的权限和特权,并且在尝试手动运行任务时当前已login。
  • 创build另一个batch file,除了调用另一个batch file以外,其他的batch file是否可能是最初调用的batch file中的一个命令。 这仍然失败,但如果手动运行,再次工作。

我处于死胡同 任何新的想法,可以启动故障排除过程? 谢谢!

编辑1 :为了澄清,我应该注意到,我正在检查“运行任务是否用户login或不”,但我不记得是否它是最初设置的方式。

我也有同样的问题。 这是我检查。 什么是你的batch file的名字? 它可能是一个.bat? 尝试将其重命名为.cmd SQL Server代理正在运行作业。 该服务的服务帐户是否拥有权利? 你使用一个调用语句还是只写了batch file的名字? 我想你不需要一个通话声明(你提到过)。 是工作的主人吗? 今天是正常的 你有任何净使用命令或复制del等需要/ Q / Y或其他陈述? 这个工作不能回答任何问题,例如有打开的文件,你确定是否有涉及Windows防火墙? 我的疑惑是:我试图做不止一件事。 别。 重命名一个工作。 用另一份工作重命名另一件事。 每项工作不要做多件事。 听起来很愚蠢,我知道,但无论如何,你应该做的故障排除的目的。 最简单的testing方法是使用z:\ server \ share并查看事件查看器和作业历史日志中的内容。 保持简单,然后input一个真实的命令。 我非常抱歉,它不像以前那样是顶级的。

通过以与您的任务设置相同的用户身份运行来解决任务问题。 例如,如果您以JoeUser身份login,但是您的任务以本地pipe理员身份运行,则需要运行runas /user:administrator cmd并从那里运行批处理。 path,环境variables或权限可能会导致问题。

另外,从批处理程序返回的0x1的代码只是反映了在批处理程序终止前发出的最后一个命令的返回代码。 对于某些程序,0x1是一个错误。 对于其他人,这只是一个返回代码 – 检查特定命令的文档。 您可以在batch file中的命令后面插入echo %ERRORLEVEL%来跟踪进度并帮助您缩小范围。 一旦你知道哪个命令返回1,你可以检查该命令的文档,看看如何解决它。

一旦你在一个CMD窗口中正常运行,你想把它作为一个同样的用户来运行,那么你可以把它作为一个计划任务来运行。

也许你可以澄清批处理程序的性质是为了帮助我们回答为什么它不能作为一个任务运行。