安裝多個更新時,使用 Windows 更新更新 Win2008R2 SP1 通常會失敗,但每次安裝一個更新時同樣失敗的更新工作
我正在更新一大堆執行 Windows 2008R2 SP1 的伺服器。大約有 120 個更新需要安裝。我發現,如果我執行所有更新,則需要數小時和數小時,然後失敗並需要數小時和數小時才能恢復。
我開始小批量更新。先前失敗的相同更新有效。但有時小批量(5-10)錯誤……但如果我一個一個地執行更新,那麼它們就可以工作。
錯誤程式碼是 80070643。我可以發布 windowsupdate.log 但我沒有看到任何其他有用的資訊。
MS對此有一個知識庫(http://support.microsoft.com/kb/976982),但我嘗試按照他們的建議做……起初似乎它會解決它,但後來我還是遇到了同樣的問題一次又一次的錯誤。
每個人都遇到這種情況嗎?當然,其他人會安裝新伺服器,在 Windows 上執行,然後進行更新。
我的更新來自我本地的 WSUS 伺服器,但我認為這並不重要——我直接從 MS 伺服器上遇到了類似的問題。
經過大量的工作、研究和與不同人的交流,這裡是我發現的工作和嘗試的總結。
- 如果從未安裝遠端桌面服務,則從 WSUS 更新 Windows 2008R2 伺服器不是問題。例如,我能夠從全新安裝的 Windows 2008R2 SP1 更新我設置為域控制器的 2 台伺服器。這需要應用大約 150 次更新。重啟了幾次,一切都安裝得很好。一些失敗,但他們沒有在需要後出現 - 所以他們被其他有效的更新所取代。
- 安裝了 RDS 的伺服器基本上註定要失敗。安裝更新會很痛苦。這是一些 MVP 傢伙對此的評論。但即使在單使用者模式下,這也是一種痛苦。
RDS 伺服器需要對更新檔安裝進行特殊處理。研究“修補終端伺服器”將在 2005 年至 2007 年期間首次討論 WSUS v2 時的對話。簡而言之,您需要從 RDS 伺服器中清除使用者會話並將伺服器置於單使用者模式以成功安裝這些更新。
所以這個故事的寓意 - 當您計劃設置 RDS 伺服器時,安裝 Windows但不是 RDS,請執行所有 Windows 更新。然後安裝 RDS 並執行所需的任何進一步更新。
故事的第二個寓意 - 定期更新您的 RDS 伺服器,這樣您就不必在數月後因手動安裝數百個更新而遭受痛苦。
—更多內容 - 稍後—
今天,我的團隊發現了一些有用的東西——將以下系統資料庫項:HKLM\SYSTEM\CurrentControlSet\services\TrustedInstaller\BlockTimeoutIncrement 設置為更高的值(比如 36000)。這也可以通過使用“增加 Win Update Timeout”的組策略來完成。
我們發現這一點是因為我們發現 Windows 更新日誌指出更新已超時,因此它正在回滾。
設置此選項可讓 Windows 更新在數小時後完成安裝並安裝更新。
沒有告訴我們為什麼需要這麼長時間 - 這仍然不正常。但至少我們能夠進行更新。
更
看來我們已經解決了!我們開始在我們的伺服器上遇到其他錯誤,所有這些導致發現管理員 NTUSER.DAT 文件為 1.5GB,並使用大量可用資源來載入系統資料庫文件。這導致普通使用者無法登錄(當管理員登錄時,這是……基本上總是)。
無論如何,所以我刪除了管理員使用者的本地配置文件,通過登錄重新創建了它。NTUSER.DAT 小於 1MB。
好的,所以我們有一個想法 - 這是否可以解決我們的 Windows 更新問題……好吧,看起來確實如此。我們現在可以像在我們的非 RDP 伺服器上一樣安裝 Windows 更新。
所以看起來是因為管理員使用者的系統資料庫膨脹,這是我們在執行 Windows 更新(或安裝熱修復)時登錄的使用者,安裝時間過長並且超時。
也許這個 http://support.microsoft.com/kb/947821 可以提供幫助?
它說: 修復 Windows 更新損壞錯誤,例如 0x80070002 和 0x80070057
Windows 更新損壞錯誤會阻止安裝 Windows 更新和服務包。例如,如果系統文件損壞,可能無法安裝更新。如果您看到的錯誤在以下列表中,請嘗試本文中的解決方案。