为什么Windows 7 Task Scheduler任务失败并显示错误2147942667


132

我面临一个奇怪的问题。我已经安排了一个任务来批处理文件。当我运行带有选项的任务时,Run only when user is logged on一切正常。但我想在后台运行此任务,因此我正在使用option运行它Run whether user is logged on or not。现在,当我运行任务时,它不起作用。我收到以下2个错误。我不明白这个错误。请帮助我解决此问题。

 Task Scheduler failed to launch action "C:\Windows\SYSTEM32\cmd.exe" in instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of task "\stmm\Daemon". Additional Data: Error Value: 2147942667.
 Task Scheduler failed to start instance "{2a7cc950-fad9-4633-9701-af75a0fd220d}" of "\stmm\Daemon"  task for user "GBLADHEDANI\N011940" . Additional Data: Error Value: 2147942667.

41
将错误代码转换为十六进制以获取0x8007010B。7使它成为Windows错误。这将导致010B错误代码267。“目录名称无效”。当然可以。
汉斯·帕桑

1
@HansPassant,太好了。转换为十六进制,使用最后四个字节搜索错误代码。希望我能记住那个!
马克·贝里

FWIW,我发现主Task Scheduler UI的任务带有“ Last Run Result”或“ Last Run Result”或类似的列,显示可读的“目录名称无效”错误消息。我们这种情况的解决方法是下面jp2code中有关从“开始于”文件夹中删除引号的答案,因为我已将其从带引号的命令中复制出来以运行。
2015年

因此,导致2147942667的我的问题原来是由于映射驱动器引起的。当我将“程序/脚本”和“开始于”路径设置为使用完整的UNC时,作业成功运行。
user432532

Answers:


253

我有同样的问题。

在Microsoft KB文章2452723中找到了适合我的解决方案:

如果“开始于(可选)”字段中的路径带有引号,则Windows Vista以后的计划任务无法运行

基本上,编辑您计划的任务,并从“开始于”字段中删除“引号”:

  1. 打开您的计划任务
  2. 切换到“操作”标签
  3. 打开你的动作
  4. 从“开始于(可选)”字段中删除引号(“)”
  5. 保存并关闭所有打开的对话框

编辑动作对话框

要获取相关的错误消息:

1)将2147942667转换为十六进制:8007010B
2)取最后4位数字(010B)并转换为十进制:267
3)运行:net helpmsg 267
4)结果:“目录名称无效。”

命令提示符窗口


5
该问题与使用许可有关。使用option运行时Run whether user is logged on or not,我正在使用其他用户来运行该应用程序。该新用户没有读取数据的适当权限,因此也没有错误。谢谢。
Alok

1
对我来说,这也不是“许可”。这是“ 开始于”文件夹。如果具有"C:\Some Path\",那是错误的,因为它带有引号。它需要说“ C:\ Some Path”(不带引号)。
jp2code 2013年

16
这是解决方案。从文件夹中的开始文本框中删除引号。相当深奥的修复。在这方面浪费了很多时间-希望Microsoft可以通过一些有用的错误使它变得更容易,或者修复这个明显的错误。
约瑟夫

6
为了得到什么,我得到了这个错误,但是我的“开始于文件夹”设置中没有引号,而是所引用的路径不存在。
shufler

2
我没有使用引号,但仍然遇到相同的问题。@RayofCommand:您是否找到此问题的解决方案。
User1551892 2014年

9

对我来说,它是“开始于”-我从旧服务器复制了值,并将路径更新到了新的.exe位置,但是我忘了更新“开始于”位置-如果不存在,则您也得到这个错误

从上方引用@ hans-passant的注释,因为它对于调试此问题很有价值:

将错误代码转换为十六进制以获取0x8007010B。7使它成为Windows错误。这将导致010B错误代码267。“目录名称无效”。当然可以。


7

发生这种情况可能有多个原因。就我而言,这是由于权限问题导致的。任务正在运行的用户没有写入日志目录的权限,因此失败,并显示此错误。


3

在Windows7上,我遇到了同样的问题。

我收到错误2147942667和无法运行c:\ windows \ system32 \ CMD.EXE的报告。我尝试在脚本和启动中使用双引号和不使用双引号,但没有区别。然后,我尝试用UNC引用(\ Server1 \ Sharexx \ my_scripts \ run_this.cmd)替换所有映射的网络驱动器的路径引用,并为我修复了该问题。拍。


最终,这对我也是如此。我必须使用“网络使用”来获取服务器名称,然后使用ping来获取域名。最终,它是\\ machine.domain.local \ app.exe。\\计算机\ APP.EXE没有工作
格雷格

也为我做了。谢谢!
杰斯

2

有关更通用的答案,请将错误值转换为十六进制,然后在Windows Task Scheduler错误和成功常量中查找十六进制值。


3
嗨,迈克。我在程序员模式下使用Windows计算器转换2147942667为十六进制:0x8007010B。该值不会出现在您提供的链接中。当然,仅供参考。
jp2code 2015年

4
我只是用Google搜索:2147942667 in hex。Google现在也是计算器。
Baodad '16

0

对我来说,这是“开始于”-我不小心在程序名称的末尾留了'.py'。而且我忘了大写它所在的文件夹的名称(“应用程序”)。


0

对我来说,这是由于用户PATH环境变量,即使用户正确,该变量似乎也不起作用,因此我需要将整个可执行路径放入program字段中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.