Windows Update 疑難排解

適用於

  • Windows 10
  • Windows 11

如果您在使用 Windows Update 時遇到問題,請從下列步驟開始:

  1. 執行內建的 Windows Update 疑難排解員以修正常見的問題。 瀏覽至 設定 > 更新與安全性 > 疑難排解 > Windows Update

  2. 從 Microsoft Update Catalog 中安裝與您的 Windows 版本相符的最新服務堆疊更新。 如需服務堆疊更新的詳細資訊,請參閱 服務堆疊更新

  3. 請確定您已安裝最新的 Windows 更新、累積更新及彙總套件更新。 若要驗證更新狀態,請參閱您系統的正確更新歷程記錄:

進階使用者也可以參閱 Windows 更新產生的 記錄 進行進一步調查。

使用 Windows Update 時,您可能會遇到下列情況。

為什麼提供舊版更新給我?

提供給裝置的更新取決於幾個因素。 以下是一些最常見的屬性:

  • 作業系統組建
  • 作業系統分支
  • 作業系統地區設定
  • 作業系統架構
  • 裝置更新管理設定

如果您所收到的更新不是最新的版本,這可能是因為您的裝置是由 WSUS 伺服器所管理,且該伺服器已提供您可用的更新。 如果您的裝置屬於「部署群組」的一部分,您的系統管理員刻意減慢更新的推出速度,這也是有可能的。 由於部署緩慢且要從頭開始,因此所有裝置不會在同一天收到更新。

我的裝置在掃描時停滯。 為什麼?

[設定] UI 會與 [更新 Orchestrator] 服務通訊,接著又與 Windows Update 服務進行通訊。 如果這些服務意外停止,您可能就會看到這種行為。 在這種情況下,請遵循下列步驟:

  1. 關閉 [設定] 應用程式並重新開啟。

  2. 啟動 Services.msc 並檢查下列服務是否正在執行:

    • 更新狀態 Orchestrator
    • Windows Update

如果有其他更新,就不會提供功能更新

執行 Windows 10 的裝置 (版本 1709 至版本 1803) 設定為從 Windows Update 進行更新 (包括商務用 Windows Update),可安裝服務和定義更新,但永遠不能接收功能更新。

檢查 WindowsUpdate.log 會顯示下列錯誤:

YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           * START * Finding updates CallerId = Update;taskhostw  Id = 25
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Online = Yes; Interactive = No; AllowCachedResults = No; Ignore download priority = No
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           ServiceID = {855E8A7C-ECB4-4CA3-B045-1DFA50104289} Third party service
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Search Scope = {Current User}
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Caller SID for Applicability: S-1-12-1-2933642503-1247987907-1399130510-4207851353
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            Got 855E8A7C-ECB4-4CA3-B045-1DFA50104289 redir Client/Server URL: https://fe3.delivery.mp.microsoft.com/ClientWebService/client.asmx""
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            Token Requested with 0 category IDs.
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            GetUserTickets: No user tickets found. Returning WU_E_NO_USERTOKEN.
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [AuthTicketHelper::GetDeviceTickets:570]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [AuthTicketHelper::GetDeviceTickets:570]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] GetDeviceTickets
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [AuthTicketHelper::AddTickets:1092]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Method failed [CUpdateEndpointProvider::GenerateSecurityTokenWithAuthTickets:1587]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] GetAgentTokenFromServer
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] GetAgentToken
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] EP:Call to GetEndpointToken
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Misc            *FAILED* [80070426] Failed to obtain service 855E8A7C-ECB4-4CA3-B045-1DFA50104289 plugin Client/Server auth token of type 0x00000001
YYYY/MM/DD HH:mm:ss:SSS PID  TID  ProtocolTalker  *FAILED* [80070426] Method failed [CAgentProtocolTalkerContext::DetermineServiceEndpoint:377]
YYYY/MM/DD HH:mm:ss:SSS PID  TID  ProtocolTalker  *FAILED* [80070426] Initialization failed for Protocol Talker Context
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           Exit code = 0x80070426
YYYY/MM/DD HH:mm:ss:SSS PID  TID  Agent           * END * Finding updates CallerId = Update;taskhostw  Id = 25

0x80070426 錯誤碼會轉譯為:

ERROR_SERVICE_NOT_ACTIVE - # The service has not been started.

[Microsoft 帳戶] 登入助理 (MSA 或 wlidsvc) 是有問題的服務。 DCAT 正式 service (ServiceId: 855E8A7C-ECB4-4CA3-B045-1DFA50104289) 依據 MSA 以取得裝置的全域裝置識別碼。 在 MSA 服務未執行的情況下,用戶端不會產生並傳送全域裝置識別碼,且無法順利完成 [搜尋功能更新]。

若要解決此問題,請將 MSA 服務重設為「手動」的預設 StartType。

與 HTTP/Proxy 相關的問題

Windows Update 使用 WinHttp 與部分範圍要求 (RFC 7233) 以從 Windows Update 伺服器或內部部署的 WSUS 伺服器下載更新和應用程式。 因此,網路上的 proxy 伺服器必須支援 HTTP 範圍要求。 如果您在 Internet Explorer 中設定 proxy (使用者層級) 但不在 WinHTTP (系統層級) ,則 Windows Update 網站連線就會失敗。

若要修正此問題,請使用下列 netsh 命令在 WinHTTP 中設定 proxy:

netsh winhttp set proxy ProxyServerName:PortNumber 

注意

您也可以使用下列命令從 Internet Explorer 匯入 proxy 設定:使用下列命令:netsh winhttp import proxy source=ie

如果透過 proxy 伺服器下載失敗,且出現錯誤碼 0x80d05001 DO_E_HTTP_BLOCKSIZE_MISMATCH,或者如果您注意到下載更新時 CPU 使用量過高,請檢查 proxy 設定,以允許執行 HTTP RANGE 要求。

您可以選擇套用規則以允許下列網址的 HTTP RANGE 要求:

*.download.windowsupdate.com
*.dl.delivery.mp.microsoft.com *.delivery.mp.microsoft.com

如果您無法允許 RANGE 要求,您下載的更新內容會比所需的更多 (因為 delta patching 無法運作)。

此更新不適用於您的電腦

下表說明發生此錯誤的最常見原因:

原因 說明 解決方法
更新已取代 隨著元件的更新已發行,更新的元件將取代系統中已有的舊版元件。 發生這種情況時,系統會將舊版更新標示為已取代。 如果您嘗試安裝的更新已在您的系統上有較新版本的承載,您可能會收到此錯誤訊息。 檢查您正在安裝的封裝套件包含較新版本的二進位檔案。 或者,請檢查封裝套件是否已被另一個新套件取代。
已安裝更新 如果先前已安裝您嘗試安裝的更新 (例如,另一個更新已執行相同的承載),您可能會遇到此錯誤訊息。 確認您嘗試安裝的封裝套件尚未安裝過。
錯誤的架構更新 更新是由 CPU 架構發佈。 如果您嘗試安裝的更新與您的 CPU 架構不相符,您可能會遇到此錯誤訊息。 確認您要安裝的套件與您使用的 Windows 版本相符。 Windows 版本資訊可在本文的「適用於」章節中找到每個更新的文章。 例如,Windows Server 2012 - 僅 Windows Server 2012 R2 型電腦無法安裝更新。
此外,請確認您要安裝的套件與您使用的 Windows 版本的處理器架構相符。 例如,在 Windows 版 x64 安裝中無法安裝以 x86 為基礎的更新。
缺少先決條件更新 有些更新必須先進行必備更新,才能套用至系統。 如果您缺少必要的更新,可能會遇到此錯誤訊息。 例如,KB 2919355 必須安裝在 Windows 8.1 和 Windows Server 2012 R2 電腦上,才能安裝許多在 2014 年 4 月之後發行的更新。 查看 Microsoft 知識庫 (KB) 中有關封裝套件的相關文章,以確認您已安裝必要的更新。 例如,如果您在 Windows 8.1 或 Windows Server 2012 R2 上遇到錯誤訊息,您可能需要安裝 2014 年 4 月的更新 2919355 作為先決條件,以及一或多個必要的服務更新 (KB 2919442 與 KB 3173424)。
若要判斷是否已安裝這些必要更新,請執行下列 PowerShell 命令:
get-hotfix KB3173424,KB2919355, KB2919442.
如果已安裝更新,則命令會在輸出的 InstalledOn 區段中傳回已安裝的日期。

與防火牆設定有關的問題

您在 Windows Update 網站記錄中可能會看到的錯誤:

DownloadManager    Error 0x800706d9 occurred while downloading update; notifying dependent calls. 

[DownloadManager] BITS job {A4AC06DD-D6E6-4420-8720-7407734FDAF2} hit a transient error, updateId = {D053C08A-6250-4C43-A111-56C5198FE142}.200 <NULL>, error = 0x800706D9 

DownloadManager [0]12F4.1FE8::09/29/2017-13:45:08.530 [agent]DO job {C6E2F6DC-5B78-4608-B6F1-0678C23614BD} hit a transient error, updateId = 5537BD35-BB74-40B2-A8C3-B696D3C97CBA.201 <NULL>, error = 0x80D0000A 

移至 Services.msc 並確認已啟用 Windows 防火牆服務。 終止 Microsoft 不支援的具有進階安全性的 Windows 防火牆相關聯的服務。 如需詳細資訊,請參閱 我需要停用 Windows 防火牆

從衝突原則設定所產生的問題

Windows Update 提供範圍廣泛的設定原則,以在受管理環境中控制 Windows Update 服務的行為。 雖然這些原則可讓您在細微的等級上進行設定,但設定錯誤或設定衝突的原則,可能會導致非預期的行為。

如需詳細資訊,請參閱 如何使用 [群組原則] 或 [登錄設定] 設定自動更新,以取得詳細資訊。

裝置無法存取更新檔案

確定裝置可透過防火牆達到必要的 Windows Update 網站端點。 例如,在 Windows 10 版本 2004 中,下列通訊協定必須能夠達到這些個別端點:

通訊協定 端點 URL
TLS 1.2 *.prod.do.dsp.mp.microsoft.com
HTTP emdl.ws.microsoft.com
HTTP *.dl.delivery.mp.microsoft.com
HTTP *.windowsupdate.com
HTTPS *.delivery.mp.microsoft.com
TLS 1.2 *.update.microsoft.com
TLS 1.2 tsfe.trafficshaping.dsp.mp.microsoft.com

注意

請務必不要針對指定 HTTP 的那些端點使用 HTTPS,反之亦然。 連線將會失敗。

特定的端點在 Windows 用戶端版本中可能會有所不同。 請參閱,例如 Windows 10 2004 企業版連線端點。 其他 Windows 用戶端版本類似的文章可在附近的目錄中找到。

無法從內部網路端點 (WSUS 或 設定管理員) 下載更新

Windows 用戶端裝置可以接收各種來源的更新,包括 Windows Update 線上版、Windows Server Update Services 伺服器,以及其他來源。 若要判斷目前裝置上使用的 Windows Update 來源,請遵循下列步驟:

  1. 以系統管理員身分啟動 Windows PowerShell。
  2. 執行 $MUSM = New-Object -ComObject "Microsoft.Update.ServiceManager"。
  3. 執行 $MUSM.Services。

檢查 [名稱] 和 [OffersWindowsUPdates] 參數的輸出,您可以依據此表格來解讀。

輸出 意義
-名稱:Microsoft Update
-OffersWindowsUpdates:True
-Microsoft Update 為更新的來源,這表示除了作業系統之外,其他 Microsoft 產品的更新也可以傳送。
-表示用戶端已設定為接收所有 Microsoft 產品 (Office 等) 的更新。
- 名稱:DCat 正式發行前小眾測試生產
- OffersWindowsUpdates:True
-從 Windows 10 版本 1709 開始,功能更新一律透過 DCAT 服務傳送。
-表示用戶端已設定為從 Windows Update 接收功能更新。
-名稱:Windows Store (DCat 製作公司)
-OffersWindowsUpdates:False
-更新來源為 Microsoft Store 應用程式的測試人員更新。
-表示用戶端將不會收到,或未設定為接收這些更新。
-名稱:Windows Server Update Service
- OffersWindowsUpdates:True
-來源為 Windows Server Update Services 伺服器。
-用戶端已設定為從 WSUS 接收更新。
-名稱:Windows Update
- OffersWindowsUpdates:True
-來源為 Windows Update 網站。
-用戶端已設定為從 Windows Update Online 接收更新。

您在環境中的設定錯誤

在這個範例中,每個透過登錄進行設定的 [群組原則] 都會將系統設定為使用 WSUS 進行下載更新 (請注意第二行):

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU] 
"UseWUServer"=dword:00000001

從 Windows Update 網站記錄:

2018-08-06 09:33:31:085  480 1118 Agent ** START **  Agent: Finding updates [CallerId = OperationalInsight  Id = 49] 
2018-08-06 09:33:31:085  480 1118 Agent ********* 
2018-08-06 09:33:31:085  480 1118 Agent   * Include potentially superseded updates 
2018-08-06 09:33:31:085  480 1118 Agent   * Online = No; Ignore download priority = No 
2018-08-06 09:33:31:085  480 1118 Agent   * Criteria = "IsHidden = 0 AND DeploymentAction=*" 
2018-08-06 09:33:31:085  480 1118 Agent   * ServiceID = {00000000-0000-0000-0000-000000000000} Third party service 
2018-08-06 09:33:31:085  480 1118 Agent   * Search Scope = {Machine} 
2018-08-06 09:33:32:554  480 1118 Agent   * Found 83 updates and 83 categories in search; evaluated appl. rules of 517 out of 1473 deployed entities 
2018-08-06 09:33:32:554  480 1118 Agent ********* 
2018-08-06 09:33:32:554  480 1118 Agent **  END  **  Agent: Finding updates [CallerId = OperationalInsight  Id = 49] 

在上述記錄程式碼片段中,我們會看到 Criteria = "IsHidden = 0 AND DeploymentAction=*"。 "*" 表示伺服器中沒有指定任何內容。 如此一來,就會發生掃描,但沒有指示要下載或安裝至代理程式。 因此,它只會掃描更新並提供結果。

如下列記錄所示,自動更新會執行掃描並發現沒有核准的更新。 所以它報告說沒有任何更新需要安裝或下載。 這是因為設定不正確。 WSUS 端應該核准 Windows Update 的更新,讓它根據原則在指定時間取得更新並安裝它們。 由於這個案例未包括設定管理員,因此沒有任何方式可以安裝未核准的更新。 您期望操作深入解析代理程式執行掃描,並自動觸發下載及安裝,但在這種設定中是不會發生的。

2018-08-06 10:58:45:992  480 5d8 Agent ** START **  Agent: Finding updates [CallerId = AutomaticUpdates  Id = 57] 
2018-08-06 10:58:45:992  480 5d8 Agent ********* 
2018-08-06 10:58:45:992  480 5d8 Agent   * Online = Yes; Ignore download priority = No 
2018-08-06 10:58:45:992  480 5d8 Agent   * Criteria = "IsInstalled=0 and DeploymentAction='Installation' or IsPresent=1 and DeploymentAction='Uninstallation' or IsInstalled=1 and DeploymentAction='Installation' and RebootRequired=1 or IsInstalled=0 and DeploymentAction='Uninstallation' and RebootRequired=1" 
   
2018-08-06 10:58:46:617  480 5d8 PT   + SyncUpdates round trips: 2 
2018-08-06 10:58:47:383  480 5d8 Agent   * Found 0 updates and 83 categories in search; evaluated appl. rules of 617 out of 1473 deployed entities 
2018-08-06 10:58:47:383  480 5d8 Agent Reporting status event with 0 installable, 83 installed,  0 installed pending, 0 failed and 0 downloaded updates 
2018-08-06 10:58:47:383  480 5d8 Agent ********* 
2018-08-06 10:58:47:383  480 5d8 Agent **  END  **  Agent: Finding updates [CallerId = AutomaticUpdates  Id = 57] 

Windows 用戶端上的高頻寬使用量 (Windows Update 網站)

使用者可能會看到,Windows 在系統內容下的不同場所中佔用了所有頻寬。 這個行為是由於預設的設計所致。 可能佔用頻寬的元件會延伸至 Windows Update 元件以外。

下列群組原則可以協助減輕這種情況:

連接至網際網路的其他元件: