本文帮助解决计划任务无法运行并出现错误“任务计划程序服务不可用”的问题。
某些计划任务无法运行。 打开任务计划程序调查失败时,会收到以下错误消息:
任务计划服务不可用。 任务计划程序将尝试重新连接到它。
此问题由以下原因引起:
- 计划任务配置不正确。
- 计划的任务目标应用程序或脚本不再可用或有效。
- 在最近的作系统(OS)升级后,计划任务不兼容。
使用以下步骤解决此问题:
- 清理
at任务(如果存在)。 - 删除损坏的任务,然后根据需要再次创建它们。
步骤 1:清理任务(如果存在)
注释
任务 是指由操作系统使用 at 命令自动运行的计划任务。 它是 Windows 中的旧命令,用于在指定时间和日期计划任务。 这些任务由任务计划程序服务管理。 OS 升级后,此类任务可能会因兼容性问题或任务计划程序服务出现问题而失败。 这可能会影响任务计划程序的成功启动。
检查 C:\Windows\System32\Tasks 文件夹,以确定是否在任务计划程序下创建了任何 at 任务。 如果是这样,任务将列在以下位置下。 例如:
-
C:\Windows\System32\Tasks
- C:\Windows\System32\Tasks\at1
- C:\Windows\System32\Tasks\At2
-
C:\Windows\Tasks
- C:\Windows\Tasks\At1.job
- C:\Windows\Tasks\At2.job
若要解决此问题,请使用以下步骤清理旧任务:
重要
本部分、方法或任务包含说明如何修改注册表的步骤。 如果您错误地修改注册表,可能会出现严重问题。 因此,请确保仔细执行这些步骤。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和恢复注册表的更多信息,请参见如何在 Windows 中备份和恢复注册表。
-
停止任务计划程序服务:
-
下载 PsTools 并提取文件。
-
转到提取的 PsTools 目录,然后从管理命令提示符(cmd.exe)窗口中运行以下命令:
psexec.exe -s -i cmd.exe -
接受最终用户许可协议(EULA)后,将打开另一个 cmd.exe 过程。 键入
whoami命令提示符,应收到输出nt authority\system。 -
运行以下命令:
net stop schedule
-
-
成功停止任务计划程序服务后,如果存在
at任务,请在备份后删除其相关文件。 下面是一些示例:-
C:\Windows\System32\Tasks
- C:\Windows\System32\Tasks\at1
- C:\Windows\System32\Tasks\At2
-
C:\Windows\Tasks
- C:\Windows\Tasks\At1.job
- C:\Windows\Tasks\At2.job
-
-
从注册表中删除计划条目:
-
以管理员身份打开注册表编辑器。
-
转到
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks并备份Tasks文件夹,然后继续执行后续步骤。 -
删除以 ...
{1}结尾的键...{3}``{2}或更多(如果存在)。 这些键的属性Path设置为\\At<#>,例如:-
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{1}Path=\\At1 -
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{2}Path=\\At2
-
-
如果存在,请删除以下键:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{xxxxxxxx-EC79-4064-9831-xxxxxxxxxxxx}HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{xxxxxxxx-FB9E-4BDD-8FED-xxxxxxxxxxxx}
-
转到
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree,并删除以结尾At1的键,At2``At3... 或更多(如果存在)。 这些键以At<#>结尾,例如:重要
在 继续执行后续步骤之前备份
Tree密钥。HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\At1HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\At2
-
-
请返回到使用
psexec命令打开的命令提示符,然后运行以下命令以启动任务计划服务:netsh start schedule
步骤 2:删除损坏的任务,然后根据需要再次创建它们
如果清理 at 任务或没有 at 任务,则可能已损坏导致此问题的任务。 找到损坏的任务,将其删除,然后根据需要再次创建。
-
查找损坏的任务:
- 打开任务计划程序,并确认第一个错误消息以进入任务计划程序控制台。
- 展开任务计划程序库结构。
- 选择每个文件夹对象并观察它们是否生成以下错误消息:
所选任务“{0}”不再存在。 若要查看当前任务,请单击“刷新”。 4. 记下生成此错误消息的每个任务。 5. 在任务计划程序内浏览所有文件夹和子文件夹后,即可删除损坏的任务。
-
删除损坏的任务:
重要
本部分、方法或任务包含说明如何修改注册表的步骤。 如果您错误地修改注册表,可能会出现严重问题。 因此,请确保仔细执行这些步骤。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和恢复注册表的更多信息,请参见如何在 Windows 中备份和恢复注册表。
注释
在继续执行以下步骤之前,请备份以下项:
- 文件夹 %SYSTEMDRIVE%\Windows\System32\Tasks
- 注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\
-
从“任务”文件夹中删除与损坏的任务相对应的任务文件(%SYSTEMDRIVE%\Windows\System32\Tasks)。
-
转到注册表子项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree。 记下Id需要删除与损坏的任务对应的每个任务的值(以 GUID 格式)。从
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree中删除与已损坏的任务对应的注册表子项。
-
从
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks中删除与损坏的任务对应的注册表子项。 -
从以下位置之一删除注册表中与损坏的任务对应的子项:
注释
该任务仅存在于三个位置之一,并且采用 GUID 格式。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\PlainHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\LogonHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Boot
请联系 Microsoft 支持
如果上述步骤无法解决问题,请联系Microsoft 支持部门以获取进一步帮助。