共用方式為


針對 WSUS 用戶端代理程式的問題進行疑難解答

本文可協助您診斷和解決 Windows Server Update Services (WSUS) 用戶端代理程序的問題。

原始產品版本:Windows Server Update Services
原始 KB 編號: 10132

當您遇到 WSUS 用戶端代理程式的問題時,它們可以透過許多方式來表示自己。 這裡列出一些常見的問題:

  • 這可能是客戶端設定 群組原則 的問題。
  • 這可能是 BITS 的問題。
  • 這可能是 WSUS 代理程式服務的問題。
  • 這可能與導致客戶端無法連線到伺服器的網路問題有關。
  • 這可能是自動更新代理程式存放區的問題。
  • 這可能是用戶端因磁碟複製而導致 WSUS 用戶端識別子重複的問題。

確認客戶端已正確設定

當您針對 WSUS 用戶端代理程式的問題進行疑難解答時,請先確定用戶端已正確設定。 請確定用戶端正在接收適當的 Active Directory 群組原則,並顯示 WSUS 伺服器的詳細數據。 您可以執行下列命令來執行此動作:

GPRESULT /V > GPRESULT.TXT

在記事本中開啟文本檔,並尋找 WSUS 原則的名稱。 例如,如果您的 WSUS 原則命名為 WSUS,您可以在 [套用的 群組原則 物件] 標題下的 [計算機設定] 區段內的 GPRESULT.TXT 檔案中找到它。 以下是範例:

Applied Group Policy Objects  
-----------------------------  
Default Domain Policy  
WSUS  
Local Group Policy

如果 WSUS 設定不存在,可能的原因包括:

  • 系統沒有來自網域的 群組原則。
  • 群組原則 不是以客戶端系統為目標。

若要修正此問題,請確定每個用戶端上的 群組原則 已成功更新,且 WSUS 設定已正確設定。

若要更新用戶端上的 群組原則,請GPUpdate /force從命令提示字元執行 。

如需設定 WSUS 用戶端 群組原則 的詳細資訊,請參閱使用 群組原則 設定自動 匯報

檢查與 BITS 相關的問題

背景智慧型手機傳送服務 (BITS) 是 WSUS 用來將更新從 Microsoft Update 下載到主要 WSUS 伺服器,以及從 WSUS 伺服器下載到其用戶端的服務。 某些下載問題可能是因為伺服器或客戶端電腦上的BITS問題所造成。 當您針對下載問題進行疑難解答時,您應該確定 BITS 在所有受影響的電腦上都正常執行。

根據預設,BITS 服務必須在 LocalSystem 帳戶下執行。 若要將服務設定為在正確的帳戶下執行,請遵循下列步驟:

  1. 開啟命令提示字元並執行下列命令:

    sc config bits obj= LocalSystem
    

    obj=LocalSystem 之間必須有空格。 如果成功,您應該會收到下列輸出:

    [SC] ChangeServiceConfig SUCCESS
    
  2. 停止並重新啟動 BITS。

若要檢視 BITS 服務狀態,請開啟命令提示字元並執行下列命令:

sc query bits

如果 BITS 正在執行,您應該會看到下列輸出:

SERVICE_NAME: bits  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 4 RUNNING

如果 BITS 未執行,您會看到下列輸出:

SERVICE_NAME: bits  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 1 STOPPED

通常可以藉由停止服務並重新啟動它來解決 BITS 問題。 若要停止並重新啟動 BITS 服務,請從命令提示字元執行下列命令:

sc stop bits
sc start bits

注意事項

您必須以本機系統管理員身分登入,才能停止並重新啟動 BITS。

BITS 無法啟動

如果 BITS 服務無法啟動,請在事件記錄檔中查看任何 BITS 相關錯誤。 您可以使用下表來診斷這些錯誤的原因。

錯誤名稱 錯誤碼 描述
ERROR_SERVICE_DOES_NOT_EXIST 0x80070424 請參閱下列關於 修復 BITS 組態的 章節。
ERROR_SERVICE_NOT_IN_EXE 0x8007043B BITS 未列為 netsvcs svchost 群組中的其中一個服務
ERROR_SERVICE_DISABLED 0x80070422 BITS 已停用。 啟用 BITS 服務。
ERROR_SERVICE_DEPENDENCY_DELETED ERROR_SERVICE_DEPENDENCY_FAIL 0x80070433、0x8007042c 無法啟動出現在 BITS 服務相依性清單中的服務。 請確定 BITS 服務的相依性清單正確:
Windows Vista: 啟用對等快取時,RpcSs、EventSystem (也會 http.sys 和 LanManWorkstation)
Windows Server 2003: Rpcss、EventSystem
Windowsxp: Rpcss
Windows 2000: Rpcss、SENS、Wmi
ERROR_PATH_NOT_FOUND 0x80070003 Windows Vista 前: %ALLUSERSPROFILE%\Microsoft\Network 不存在
ERROR_FILE_NOT_FOUND 0x80070002 遺漏參數索引鍵。 請確定下列索引鍵和值存在:
HKLM\SYSTEM\CurrentControlSet\Services\BITS\Parameters\ServiceDll= %SystemRoot%\System32\qmgr.dll

REGDB_E_CLASSNOTREG、EVENT_E_INTERNALERROR 0x80040154、0x80040206 適用於 Windows 2000 的 BITS 相依於 SENS 和 EventSystem 服務。 如果 COM+ 目錄損毀,BITS 可能會因為此錯誤碼而失敗。

BITS 作業失敗

如果客戶端已正確設定為接收更新、已正確設定 BITS,且 BITS 似乎正常啟動和執行,您可能會遇到 BITS 作業本身失敗的問題。 若要確認,請在事件記錄檔中尋找任何 BITS 相關錯誤。 您可以使用下表來診斷這些錯誤的原因。

錯誤名稱 錯誤碼 描述
E_INVALIDARG 0x80070057 使用者的 Internet Explorer Proxy 設定中指定了不正確的 Proxy 伺服器名稱。 當為不是 NTLM/Negotiate 的驗證配置提供認證,但使用者名稱或密碼為 Null 時,也會看到此錯誤。 將使用者的 Internet Explorer Proxy 設定變更為有效的 Proxy 伺服器。 或者,針對 NTLM/Negotiate 以外的配置,將認證變更為非 NULL 使用者名稱/密碼。
ERROR_WINHTTP_NAME_NOT_RESOLVED 0x80072ee7 BITS 無法解析伺服器/Proxy。 在作業擁有者的內容中,相同電腦上的 Internet Explorer 會看到相同的問題。 請嘗試使用作業擁有者的內容,透過網頁瀏覽器下載相同的檔案。
ERROR_HTTP_INVALID_SERVER_RESPONSE 0x80072f78 這是暫時性錯誤,且作業會繼續下載。
BG_E_INSUFFICIENT_RANGE_SUPPORT 0x80200013 BITS 會在 HTTP 要求中使用範圍標頭來要求檔案的元件。 如果伺服器或 Proxy 伺服器不瞭解範圍要求,並傳回完整檔案,而不是要求的範圍,BITS 會將作業置於錯誤狀態,並出現此錯誤。 擷取錯誤期間的網路流量,並檢查具有 Range 標頭的 HTTP GET 要求是否收到有效的回應。 檢查 Proxy 伺服器,確定它們已正確設定以支援 Range 要求。
BG_E_MISSING_FILE_SIZE 0x80200011 當 BITS 傳送 HEAD 要求,且伺服器/Proxy 未在回應中傳回 Content-Length 標頭時,BITS 會將作業置於 ERROR 狀態,並出現此錯誤。 檢查 Proxy 伺服器和 WSUS 伺服器,以確定它們已正確設定。 已知某些 Apache 2.0 Proxy 伺服器版本會呈現此行為。
BG_E_HTTP_ERROR_403 0x80190193 當伺服器在任何要求中傳回 HTTP 403 回應時,BITS 會使用此錯誤碼將作業置於 ERROR 狀態。 HTTP 403 對應至 禁止:拒絕存取。 檢查執行作業之帳戶的訪問許可權。
ERROR_NOT_LOGGED_ON 0x800704dd SENS 服務未收到使用者登入通知。 BITS (2.0 版和更新版本) 取決於來自 Service Control Manager 的登入通知,而這又取決於 SENS 服務。 請確定 SENS 服務已啟動並正確執行。

修復損毀的BITS設定

若要修復損毀的 BITS 服務設定,您可以手動輸入 BITS 服務組態。

注意事項

只有在所有其他疑難解答嘗試都失敗的情況下,才應該採取此動作。 您必須是系統管理員才能修改 BITS 設定。

若要修復損毀的 BITS 設定,請遵循下列步驟:

  1. 開啟命令提示字元。

  2. 輸入下列命令,在輸入每個命令之後按 ENTER:

    sc config bits binpath= "%systemroot%\system32\svchost.exe –k netsvcs"
    sc config bits depend= RpcSs/EventSystem
    sc config bits start= delayed-auto
    sc config bits type= interact type=own
    sc config bits error= normal
    sc config bits obj= LocalSystem
    sc privs bits privileges= SeCreateGlobalPrivilege/SeImpersonatePrivilege/SeTcbPrivilege/SeAssignPrimaryTokenPrivilege/SeIncreateQuotaPrivilege
    sc sidtype bits unrestricted
    sc failure bits reset= 86400 actions=restart/60000/restart/120000
    
  3. 停止並重新啟動 BITS。

WSUS 代理程式服務的問題

請確定 Windows Update 服務可以成功啟動。

若要檢視 Windows Update 服務的目前狀態,請開啟命令提示字元並執行下列命令:

sc query wuauserv

如果 WUAUSERV 正在執行,您應該會看到下列輸出:

SERVICE_NAME: wuauserv  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 4 RUNNING

如果 WUAUSERV 未執行,您會看到下列輸出:

SERVICE_NAME: wuauserv  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 1 STOPPED

確認您可以成功啟動 WUAUSERV 服務。 您必須以本機系統管理員身分登入,才能停止並重新啟動WUAUSERV。

若要啟動 WUAUSERV 服務,請從命令提示字元執行下列命令:

sc start wuauserv

如果用戶端代理程式無法正確啟動並執行,請檢查 Windows Update 代理程式版本。 如果代理程式不是最新版本,請將 Windows Update Agent 更新為最新版本

您也可以重設 Windows Update元件

執行修正或更新代理程式之後,請執行 wuauclt /detectnow。 檢查windowsupdate.log以確定沒有任何問題。

確定可從客戶端連線到 WSUS 伺服器

請確定您可以存取 URL http://<WSUSSERVER:port>/iuident.cab 並下載檔案,而不會發生錯誤。

如果無法從用戶端連線到 WSUS 伺服器,最可能的原因包括:

  • 用戶端上有名稱解析問題。
  • 有網路相關問題,例如 Proxy 設定問題。

使用標準疑難解答程序來驗證網路上的名稱解析是否正常運作。 如果名稱解析正常運作,下一個步驟是檢查 Proxy 問題。 檢查 windowsupdate.log (C:\windows) ,以查看是否有任何 Proxy 相關錯誤。 您可以執行 proxycfg 命令來檢查 WinHTTP Proxy 設定。

如果發生 Proxy 錯誤,請移至 Internet Explorer >Tools>Connections>LAN 設定、設定正確的 Proxy,然後確定您可以存取指定的 WSUS URL。

完成後,您可以使用 proxycfg -u 命令,將這些使用者 Proxy 設定複製到 WinHTTP Proxy 設定。 指定 Proxy 設定之後, wuauclt /detectnow 請從命令提示字元執行 ,並檢查windowsupdate.log是否有錯誤。

重建自動更新代理程式存放區

當下載更新時發生問題,而且有與軟體發佈存放區相關的錯誤時,請在用戶端上完成下列步驟:

  • 從命令提示字元執行 以停止自動 匯報 服務sc stop wuauserv
  • 將軟體發佈資料夾重新命名 (例如 C:\Windows\SoftwareDistribution) 。
  • 從命令提示字元執行 ,以重新啟動自動更新服務 sc start wuauserv
  • 從命令提示字元中,執行 wuauclt /resetauthorization /detectnow
  • 從命令提示字元中,執行 wuauclt /reportnow

檢查具有相同 SUSclient 識別符的用戶端

您可能會遇到只有一個 WSUS 用戶端出現在控制台中的問題。 或者,您可能會注意到,在一組用戶端中,一次只有一個出現在控制台中,但出現的確切用戶端可能會隨著時間而變更。 當系統已進行映像,而用戶端最終具有相同的 SUSclientID時,就會發生此問題。

針對因為相同 SUSclientID而無法正常運作的用戶端,請完成下列步驟:

  • 從命令提示字元執行 以停止自動 匯報 服務sc stop wuauserv

  • 從下 SUSclientID 列位置移除登入機碼:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate

  • 從命令提示字元執行 ,以重新啟動自動更新服務 sc start wuauserv

  • 從命令提示字元中,執行 wuauclt /resetauthorization /detectnow

  • 從命令提示字元中,執行 wuauclt /reportnow