4

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

以下是建议的不同修复的摘要:

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

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

-从动作中的程序名称中删除文件路径,并在开始中输入路径

-从开始中删除引号

- 在条件选项卡中取消单击“仅当计算机使用交流电源时才启动任务”,因为某些服务会欺骗服务器使其认为它有电池

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

-确保用户在本地安全策略>本地策略>用户权限分配>作为批处理作业登录

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

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

4

2 回答 2

2

尝试使用:

pushd \\machine\share

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

完成后使用:

popd \\machine\share

取消映射驱动器。

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

于 2014-07-14T07:21:56.453 回答
0

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

我也在努力解决这个错误,我的解决方案最终成为一个令人惊讶的原因,所以我想我会分享它以防它帮助别人。

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

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

我解决问题的方法是从一个用作服务帐户的一个和一个没有用作服务帐户的一个中导出 xml,然后将它们进行比较并对 xml 进行小的编辑并将其重新导入,直到我确定导致的单个设置问题。原来是这个<Settings>

<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>

如果我选择了其他 3 个选项中的任何一个,问题就会消失,并且服务帐户可以毫无问题地运行任务: 任务计划程序 - 不要选择此选项。

至于为什么会发生这种情况,我认为这只是 Windows GUI 中的一个错误,可能实际上不支持“停止现有实例”选项。这似乎被这个对不同问题的回答所证实。

于 2020-08-28T16:34:03.217 回答