針對 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 Windows XP: Rpcss Windows 2000: Rpcss、SENS、Wmi |
ERROR_PATH_NOT_FOUND | 0x80070003 | Windows Vista 前: %ALLUSERSPROFILE%\Microsoft\Network 不存在 |
ERROR_FILE_NOT_FOUND | 0x80070002 | 遺漏 Parameters 索引鍵。 請確定下列索引鍵和值存在: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 會將作業放入 ERROR 狀態,並出現此錯誤。 在錯誤期間擷取網路流量,並檢查具有 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 版和更新版本)取決於服務控制管理員的登入通知,而此通知又取決於 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 代理程式更新為最新版本。
您也可以 重設 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 >工具>連線>LAN 設定、設定正確的 Proxy,然後確定您可以存取指定的 WSUS URL。
完成後,您可以使用 命令,將這些使用者 Proxy 設定複製到 WinHTTP Proxy 設定 proxycfg -u
。 指定 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
。