針對 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 帳戶下執行。 若要將服務設定為在正確的帳戶下執行,請遵循下列步驟:
開啟命令提示字元並執行下列命令:
sc config bits obj= LocalSystem
obj= 與 LocalSystem 之間必須有空格。 如果成功,您應該會收到下列輸出:
[SC] ChangeServiceConfig SUCCESS
停止並重新啟動 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 設定,請遵循下列步驟:
開啟命令提示字元。
輸入下列命令,在輸入每個命令之後按 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
停止並重新啟動 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
。