任务计划程序找不到文件

时间:2013-10-28 21:21:18

标签: batch-file windows-server-2008 scheduled-tasks

我在Windows Server 2008 R2 Standard上有大约20个计划任务。他们已经工作了好几个星期,然后本周末他们都停了下来。这些任务都是.bat文件和.exe文件,每个文件都可以通过单击资源管理器或从cmd运行来正常运行。我创建了一个新任务,从c:驱动器运行.bat,另一个只是显示一条消息,并始终获取上次运行结果“系统找不到指定的文件。(0x8007002)”用于所有任务。

以下是建议的不同修补程序的摘要:

- 确保运行任务的用户有权使用所有文件 - .bat文件中的所有联网驱动器应使用完整域引用,而不是本地驱动器号

- 在属性的“常规”选项卡中取消选中“以最高权限运行”

- 从操作中的程序名称中删除文件路径,并在Start In

中输入路径

- 从

开始删除引号

- 在条件选项卡中单击“仅在计算机处于交流电源时启动任务”,因为某些服务可能会诱使服务器认为它有电池

- 在条件选项卡上单击“如果计算机停止空闲则停止”

- 确保用户处于本地安全策略>地方政策>用户权利分配>以批处理作业登录

尝试了所有这些后,我仍然得到“无法找到未指定的文件”的运行结果,任务类别的任务启动失败,错误值2147942402

有人有另一个建议吗?如果没有别的希望这是对其他问题的一个很好的总结。

2 个答案:

答案 0 :(得分:2)

尝试使用:

pushd \\machine\share

在计划任务的批处理文件中。网络共享驱动器仅在用户运行的环境中可用。 “pushd”将允许它在脚本的上下文中运行。

当你完成使用时:

popd \\machine\share

取消映射驱动器。

参考:http://www.adrianbanks.co.uk/?p=41

答案 1 :(得分:0)

tl; dr::如果在以服务帐户身份运行时遇到此错误,则不要将设置:“如果任务已经在运行...”设置为“停止”现有实例”。使用其他3个选项中的任何一个。

我也一直在努力解决这个错误,我的解决方案最终成了一个令人惊讶的原因的兔子洞,所以我想分享一下,以防它对其他人有帮助。

在我的特定情况下,我具有作为服务帐户运行的计划任务。要修改任务,请进行更改,将runas用户保存为我,然后使用命令提示符将runas用户更改为服务帐户。当用户是我时,任务运行正常,但是一旦我将runas用户更改为服务帐户,我就会遇到相同的错误:

“系统找不到指定的文件。(0x8007002)”

我解决问题的方法是从一个用作服务帐户的XML导出一个XML,然后从一个不作为服务帐户的XML导出XML,然后将它们进行比较,并对xml进行少量修改,然后将其重新导入,直到我确定了唯一的设置为止。造成了问题。原来是<Settings>下的这个:

<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>

如果我选择了其他3个选项中的任何一个,问题就会消失,并且服务帐户可以运行任务而没有任何问题: Task Scheduler - Don't pick this option.

至于为什么发生这种情况,我认为这可能只是Windows GUI中的一个错误,实际上可能不支持“停止现有实例”选项。这似乎是confirmed by this answer的另一个问题。