自动维护

维护活动是指有助于维护 Windows 电脑运行状况和性能的应用程序或进程。 维护包括使 Windows 操作系统 (操作系统) 和应用程序保持最新状态、检查安全性以及运行恶意软件扫描。 Windows 自动管理 (WAM) 是任务计划程序 API 的一组增强功能,可用于将应用程序链接到 Windows 维护计划。 具体而言,WAM 允许添加需要定期计划但没有确切时间要求的活动。 相反,WAM 依赖于操作系统来选择适当的时间来激活全天的任务。 系统根据对用户、电脑性能和能源效率的影响最小来选择这些时间。

计划内维护的工作原理

任务计划程序维护任务是在计算机空闲且使用交流电源时运行的机会性任务。 维护任务的主要目标之一是仅当电脑接通交流电源和空闲 (即,当你不使用或离开计算机时,才计划维护对电脑的影响) 。 今天的维护理念是让计算机在对用户造成最小干扰的情况下完成工作。 因此,旧式维护小时 (我们在本主题后面的 自动维护 - 每日唤醒 部分对此进行了更多讨论,) 已得到改进,以便利用这些空闲时段。 虽然维护小时仍可被利用,但运行机会性维护更适合系统运行状况。

如果计算机在空闲和交流电源上花费的时间不多,则任务可能会耗尽。 确保方案仍会向用户提供值,即使延迟也是如此。 如果用户正在主动使用计算机,则系统会将维护推迟到以后的时间。 如果用户返回使用电脑,系统还会挂起任何正在执行的维护任务。

系统在下一个空闲期间重启挂起的维护任务;但是,系统不会挂起标记为“关键”的任何任务。 相反,无论用户操作如何,系统都允许完成关键任务。

由于计划的性质,某些计划任务可能无法完成:可能计划事件太多,无法适应 1 小时的维护时段,或者计算机根本未打开。 在这种情况下,可以定义具有截止时间的任务。 截止时间定义为系统必须至少成功执行一次任务的定期时间范围。

如果任务错过了截止时间,则维护计划程序将继续尝试在维护时段内执行该任务。 此外,计划程序不会将自身限制为常规的 1 小时时间限制。 相反,计划程序会延长维护时段的持续时间,以便完成延迟的任务。

系统完成 (任务后,即使出现失败错误代码) ,该尝试将被视为成功。 成功尝试后,计划程序将重置为常规维护计划,并将在下一个时间段内尝试该任务。

自动维护 - 每日唤醒

在 Windows 7 上,维护任务在维护时段以独占方式运行,默认为凌晨 3 点,并通过组策略进行配置。 计算机将从待机状态唤醒,运行维护任务并返回到睡眠状态。 此每日会话限制为每次尝试的最大持续时间为 1 小时。 这将允许系统每天执行维护,默认情况下从凌晨 3 点开始。 请注意,用户可以通过配置这些设置来重新计划触发维护的时间。

随着笔记本电脑的出现,以及对电池使用时间的重视,计算机在大多数情况下不再配置为允许 S3 唤醒,通常 Doze-To-S4 (休眠) ,以节省电池。 为了响应这些更改,任务计划程序 (> Win7) 在维护任务到期时运行维护任务,并且计算机处于空闲状态且使用交流电源。

可以在 控制面板 中配置此设置。

打开控制面板>系统和安全>安全与维护>自动维护

因此,根据计算机和任务的配置方式,由于此新配置,每日唤醒行为今天可能不会按预期发生。 可以首先确定计算机是否支持 S3 或 CS (连接待机) 。 这可以通过打开提升的 power shell 提示符并运行以下命令来完成。

powercfg /a

维护小时,如果计算机配置正确,仍可正常工作,但如果未正确,则为

  • 检查 BIOS 设置以获取唤醒设置。
  • 检查是否在电源选项中启用了“允许唤醒计时器”。 转到控制面板>硬件和声音>电源选项>编辑计划设置>更改高级电源设置>单击睡眠>允许唤醒计时器
  • 检查计划任务是否配置了以下内容。
    • MaintenanceSettings:任务应配置期间、截止时间。
    • 已启用:应启用任务。
    • WakeToRun:应允许任务唤醒计算机。
  • 对于从 CS 计划唤醒,计算机应支持 AOAC。
  • 对于在 S3 计算机中计划唤醒,
    • 检查计算机是否进入交流电源上的 S3。
    • 系统应在维护组策略中启用唤醒

连接待机是符合 AOAC 的系统可以进入的系统状态。

请参阅新式待机与 S3 主题中的 新式待机与 S3 之间的差异。

定义自动维护任务

可以将任何任务计划程序任务转换为维护任务。 为此,必须确认应用程序可以挂起。 然后,必须使用新的 MaintenanceSettingsAllowStartOnDemand 元素扩展任务定义。

创建维护任务main是确保系统可以暂停和重启任务。 系统可能会多次暂停维护任务:因此,需要确保应用程序能够保存自己的状态,然后在任意时间恢复。 这可确保系统不会重复执行任务的相同部分。

确保应用程序可以正常挂起和恢复后,可以使用 MaintenanceSettingsAllowStartOnDemand 元素来定义计划。 MaintenanceSettings 根据期限、截止时间和独占性进行定义。

  • 期限是强制性的,它定义了任务应发生的频率。 通常,这是根据多天周期(例如“每 5 天一次”)来定义的。 一个时间段必须至少为一天,这意味着不能将任务安排为在一天内多次执行。
  • 截止时间是可选的,它定义计划程序在通知用户或执行紧急维护之前无法完成任务的时间。 截止时间必须长于期限,这意味着系统必须有机会在通知用户之前至少尝试一次任务。
  • 此外,还可以选择将维护任务定义为 独占任务。 独占任务与其他维护任务分开运行。 通常,独占任务是使用大量资源的任务,例如大量的 CPU 时间或对数据库的独占访问。 在启动独占任务之前,系统会完成所有非独占维护任务。 因此,仅在必要时才应将任务声明为独占任务。

相比之下, AllowStartOnDemand 仅指示系统或用户可以随时启动任务。 这样,系统就可以在常规维护期间启动任务。 否则,必须为任务设置唯一触发器。