【问题标题】:why windows 7 task scheduler task fails with error 2147942667为什么 Windows 7 任务计划程序任务失败并出现错误 2147942667
【发布时间】:2012-11-17 02:57:07
【问题描述】:

我遇到了一个奇怪的问题。我已经安排了一个任务来启动一个批处理文件。当我使用选项 Run only when user is logged on 运行任务时,一切正常。但我想在后台运行此任务,因此我使用选项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.

【问题讨论】:

  • 将错误代码转换为十六进制得到0x8007010B。 7 使其成为 Windows 错误。这使得 010B 错误代码 267。“目录名称无效”。当然,会发生这种情况。
  • @HansPassant,太棒了。转换为十六进制,使用最后四个字节搜索错误代码。希望我能记住那个!
  • FWIW 我发现主任务计划程序 UI 的任务带有“上次运行结果”或类似列,显示可读的“目录名称无效”错误消息。在我们的情况下,修复是 jp2code 下面关于从 Start In 文件夹中删除引号的答案,因为我已经从引用的命令中复制了它来运行。
  • @R.J.Dunnill,谢谢你给我贴上标签。很有帮助!

标签: windows-7 scheduled-tasks


【解决方案1】:

我也有同样的问题。

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

Windows Vista onwards scheduled tasks fail to run if the path in "Start in (Optional)" field has quotes

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

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

获取相关错误信息:

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

【讨论】:

  • 问题与使用权限有关。当使用选项Run whether user is logged on or not 运行时,我使用不同的用户来运行应用程序。这个新用户没有适当的权限来读取数据,因此出现错误。谢谢。
  • 这对我来说也不是“许可”。它是 Start in 文件夹。如果它有"C:\Some Path\",那是错误的,因为它有引号。它需要说 `C:\Some Path`(不带引号)。
  • 这就是解决方案。从 Start in folder 文本框中删除引号。相当深奥的修复。浪费了几个小时 - 希望微软能通过有用的错误让事情变得更容易,或者修复这个明显的错误。
  • 值得我得到这个错误,但我的文件夹开始设置没有引号,而是引用的路径不存在。
  • 我没有使用引号,但仍然遇到同样的问题。 @RayofCommand:你找到这个问题的解决方案了吗?
【解决方案2】:

对我来说,它是“起始位置”——我从旧服务器复制了值,并更新了新 .exe 位置的路径,但我忘记更新“起始位置”位置——如果没有存在,你也得到这个错误

引用上面@hans-passant 的评论,因为它对调试这个问题很有价值:

将错误代码转换为十六进制得到 0x8007010B。 7使它成为 窗口错误。这使得 010B 错误代码 267。“目录名称是 无效”。当然,会发生这种情况。

【讨论】:

    【解决方案3】:

    发生这种情况的原因不止一个。就我而言,这是由于权限问题而发生的。运行任务的用户没有写入日志目录的权限,因此失败并出现此错误。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

      • 这终于也为我做了。我必须使用“Net Use”来获取服务器名称,然后 ping 来获取域名。最终它是 \\machine.domain.local\app.exe。 \\Machine\app.exe 没有工作
      • 也为我做了。谢谢!
      【解决方案5】:

      对于更通用的答案,将错误值转换为十六进制,然后在 Windows Task Scheduler Error and Success Constants 处查找十六进制值

      【讨论】:

      • 嗨,迈克。我在程序员模式下使用 Windows 计算器将 2147942667 转换为 HEX:0x8007010B。该值不会出现在您提供的链接中。当然,仅供参考。
      • 我刚刚用谷歌搜索了它:2147942667 in hex。 Google 现在也是一个计算器。
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

          对我们来说,“开始”路径中缺少一个“:”。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-03-26
            • 2011-02-18
            • 2010-11-20
            • 2021-07-08
            • 1970-01-01
            • 2020-10-18
            • 2015-01-04
            • 2012-08-30
            相关资源
            最近更新 更多