自動維護
維護活動是指可協助維護 Windows 電腦健康情況和效能的應用程式或程式。 維護包括保留 Windows作系統 (OS) 和應用程式 up-to日期、檢查安全性,以及執行惡意代碼掃描。 Windows 自動管理 (WAM) 是一組工作排程器 API 的增強功能,可用來將應用程式連結至 Windows 維護排程。 具體而言,WAM 可讓您新增需要定期排程但沒有確切時間需求的活動。 相反地,WAM 會依賴作系統來選擇適當的時間,以全天啟用工作。 系統會根據對使用者、計算機效能和能源效率的影響最小來選擇這些時間。
排程維護的運作方式
工作排程器維護工作是計算機閑置且在 AC 電源上執行的機會性工作。 維護工作的主要目標之一是,只有在計算機插上 AC 電源和閑置時,排程維護,將對計算機的影響降到最低(也就是說,當您不使用或離開計算機時)。 現今維護的概念是讓機器能夠對用戶執行最少中斷的工作。 因此,舊式維護時間(我們在 自動維護中進一步討論這個問題—本主題稍後的每日喚醒 一節)已改善,以利用這些閑置期間。 雖然仍可運用維護時間,但執行機會性維護較適合系統健康情況。
如果計算機在閑置和 AC 電源上花費太多時間,您的工作可能會耗盡。 請確定您的案例仍會將值提供給使用者,即使延遲也一樣。 如果用戶主動使用計算機,則系統會延遲維護,直到稍後為止。 如果使用者返回計算機,系統也會暫停任何執行中的維護工作。
系統會在下一個閑置期間重新啟動暫停的維護工作;不過,系統不會暫停標示為重大的任何工作。 相反地,不論用戶動作為何,系統都會允許重要工作完成。
由於排程的性質,某些排程的工作可能無法完成:也許有太多排程事件無法放入 1 小時維護期間,或者計算機可能根本無法開啟。 在這種情況下,您可以定義具有期限的工作。 期限定義為週期性時間範圍,系統必須至少執行一次工作。
如果工作遺漏期限,則維護排程器會繼續嘗試在維護期間執行工作。 此外,排程器不會將本身限制為一般的 1 小時時間限制。 相反地,排程器會延長維護時段的持續時間,以完成延遲的工作。
一旦系統完成工作(即使發生失敗錯誤碼),嘗試就會被視為成功。 成功嘗試之後,排程器會重設為一般維護排程,並會在下一個期間嘗試工作。
自動維護 - 每日喚醒
在 Windows 7 上,維護工作會在 維護時間期間獨佔執行,預設為上午 3 點,且可透過組策略進行設定。 機器會從待命喚醒、執行維護工作,然後返回睡眠狀態。 此每日會話限制為每次嘗試 1 小時的最大持續時間。 這可讓系統每天執行維護,預設從上午 3 點開始。 請注意,用戶可以設定這些設定來重新排程維護觸發的時間。
隨著膝上型計算機的出現,以及對電池使用時間的沉重關注,機器不再設定為允許S3喚醒在大部分情況下,一般是 Doze-To-S4(休眠)儘快節省電池。 為了回應這些變更,工作排程器(> Win7)會在到期時執行維護工作,而且計算機處於閑置狀態,並在 AC 電源上執行維護工作。
您可以在 [控制面板] 中設定此設定。
開啟 [控制面板]>[系統與安全性>安全性>自動維護]。
因此,根據您的計算機和工作設定方式,由於這個新的設定,每日喚醒行為可能不會如預期般發生。 您可以先判斷您的電腦是否支援 S3 或 CS(連線待命) 功能。 您可以開啟提升許可權的電源殼層提示字元,然後執行下列命令來完成。
powercfg /a
維護時,如果機器已正確設定,仍可運作,但如果無法運作,則為
- 檢查您的BIOS設定以取得喚醒設定。
- 檢查電源選項中是否啟用 [允許喚醒定時器]。 移至 [控制面板]>[硬體與音效]>[電源選項]>[編輯計劃設定]>[變更進階電源設定]> 按兩下 [[睡眠]>[允許喚醒定時器]。
- 檢查您的排程工作是否已使用下列項目進行設定。
- MaintenanceSettings:工作應設定期間、期限。
- 已啟用:應該啟用工作。
- WakeToRun:應該允許工作喚醒機器。
- 針對從 CS 排程喚醒,電腦應具備 AOAC 功能。
- 針對在 S3 機器中排程喚醒,
- 檢查機器是否進入 AC 電源上的 S3。
- 系統應該在組策略中 啟用喚醒 以進行維護。
線上待命是 AOAC 相容系統可以輸入的系統狀態。
請參閱新式待命與 S3 主題 新式待命與 S3的差異。
定義自動維護工作
您可以將任何工作排程器工作轉換為維護工作。 若要這樣做,您必須確認您的應用程式可以暫停。 然後,您必須使用新的 MaintenanceSettings 和 AllowStartOnDemand 元素來擴充工作定義。
建立維護工作的主要考慮是確保系統可以暫停並重新啟動工作。 系統可能會多次暫停維護工作;因此,您必須確定您的應用程式能夠儲存自己的狀態,然後在任意時間繼續。 這可確保系統不會重複執行您工作的相同部分。
一旦您確定應用程式可以正常暫停和繼續,您可以使用 MaintenanceSettings,並 AllowStartOnDemand 元素來定義排程。 MaintenanceSettings 是根據期間、期限和排他性來定義。
- 期間 是必要的,並定義工作應該發生的頻率。 這通常以多天週期來定義,例如「每 5 天一次」。 期間至少必須有一天,這表示您無法排程一天的工作在一天內多次發生。
- 期限 是選擇性的,並定義排程器在通知使用者或執行緊急維護之前,無法完成工作的時間長度。 期限必須超過期間,這表示系統必須有機會在通知使用者之前至少嘗試工作一次。
- 此外,維護工作也可以選擇性地定義為 獨佔。 獨佔工作會與其他維護工作分開執行。 一般而言,獨佔工作是使用大量資源的工作,例如大量的CPU時間,或資料庫的獨佔存取權。 系統會先完成所有非獨佔維護工作,再啟動獨佔工作。 因此,您應該只在需要時才將工作宣告為獨佔。
相反地,AllowStartOnDemand 只會指出系統或使用者可以隨時啟動工作。 這可讓系統在定期維護期間啟動工作。 否則,您必須設定工作的唯一觸發程式。