任务启动失败,实例已在运行

任务启动失败,实例已在运行

我正在尝试从任务计划程序启动一项任务。该任务正在执行批处理文件。这是它第一次运行,但之后它的状态没有从正在运行变为就绪。它以 1 小时的间隔运行了 12 个小时。我尝试从头开始创建任务,但无法解决问题。我也无法使用热修复解决方案。请给我一些其他解决方法。

注意:解决方案也没有出现任何类型的异常,因为它会被记录在日志文件中。

请帮忙。提前致谢。

答案1

可能会发生按计划运行的任务无法终止的情况。目前尚不清楚这是任务管理器的错误还是脚本的错误,但两者都可能存在问题。例如,如果批处理文件包含暂停语句,则批处理文件需要按键才能继续。任务调度程序永远不会发送该语句,因此脚本永远不会完成。

话虽如此,我也见过任务正常完成的情况,但任务调度程序却无法识别这种情况。脚本正常终止,但任务管理器却声称它仍在运行。

因此,如果任务仍在运行,Microsoft 启用了在 x 小时后终止任务的选项。

因此,您要做的就是编辑任务,转到设置标签并找到Stop the task if it runs longer than 3 days并将其更改为 1 小时。

在底部,你会发现:If the task is already running, the following applies: Do not start a new intstance

将其更改为Run a new instance in parallel

请注意,此选项可以终止前一个任务或队列。我故意选择不使用此方法。

现在,一旦您保存设置,右键单击任务并选择stop停止正在运行的实例。

请记住,如果脚本确实在这里出错了,那么它可能无法正常运行,因此它应该执行的任何操作都永远不会完成。例如,如果您在没有任务计划程序的情况下运行脚本并且它工作正常,并且在网络共享上执行了一些操作,现在您配置为使用任务计划程序执行此操作,但您以更高的权限运行它,它可能只是无法访问网络共享并因此失败。但是,这应该可以正常终止脚本。

答案2

我也遇到了类似的问题,所以我得到的解决方案是多个用户连接到同一个用户或 NAS 驱动器,我已从服务器上注销所有用户,调度程序开始工作

答案3

您可以创建一个 .vba 文件来启动批处理文件。然后您需要使用 Scheduler 运行 .vba 文件。它将立即运行 .vba 文件;大约一秒钟即可运行到就绪状态。

这样,它就不会锁定该批处理文件的调度程序,脚本将独立运行;也就是说,批处理/脚本中的错误不会以任何方式影响调度程序。此外,此代码会使 cmd 窗口不可见,因此非常适合创建自动化脚本:

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c C:\full_path_to_your_bat_file.bat"
oShell.Run strArgs, 0, false

相关内容