Windows 安全性 更新失敗修復

參考系統修正更新失敗的文章

https://www.diskpart.com/articles/sfc-scannow-there-is-a-system-repair-pending-7201.html

https://forum.gamer.com.tw/Co.php?bsn=60030&sn=2235955

公司的主機常常發生安全性更新失敗,觀察了幾次之後,發現都是在做月安全性更新出錯,但是病毒碼的更新卻要正常,感覺不太可能是每個月更新包都出問題,約略同時安裝的主機卻又正常,所以到網路上搜尋了一下,並實際把該主機Clone 成另一台來測試。

一開始遇到檢查系統修復作業時有擱置(pending)的修復作業,但多次重新開機仍無法修復

這個問題其實是有一個 C:\windows\winsxs\pending.xml 這個檔案造成的問題,但是這個檔案是系統檔案,正常情況下很難刪掉,所以我選擇進到安全模式後變更權限再刪除

執行 DOS Command 先強制開機後進入安全模式 (可以用開機後猛按F8進入,但個人手殘有一定的失敗機率)

設定開機參數為進入安全模式

bcdedit /set {current} safeboot minimal

既然都打開 dos box, 順便手動重開

shutdown /r /t 1

要恢復正常開機,請輸入以下指令

bcdedit /deletevalue safeboot

系統重開機後就自動進入安全模式,登入系統後修正 pending.xml 的權限,把刪除權限賦予給 administrator 後刪除,這邊我就不貼圖了

刪掉後可以立即執行 sfc /scannow 來確認有沒有成功,如果正常就可以看到以下畫面,但是掃描要很久喔。

接下來為求謹慎,我重新開機到正常模式後再度執行了一次 sfc /scannow,同樣的並沒有發生問題,

接下來可以再試試看這兩個指令,來掃描開機的 image 有無異常

Dism /Online /Cleanup-Image /ScanHealth

Dism /Online /Cleanup-Image /CheckHealth

如果發現異常,可以執行以下指令回覆健康的 Image

DISM /Online /Cleanup-image /Restorehealth

接下來驗證看看以上作業是否正確,我用了一個Wsus 自動更新失敗的更新,上網下載離線安裝程式,先前執行都會出現不符合版本的錯誤,修復以上問題後就可以正常的執行更新。

如果各位其他服務器也發生更新失敗,不妨試試利用以上的步驟來解。

[2022/11/02 更新]

參考來源:  https://blogs.msmvps.com/bradley/2010/03/26/fixing-a-bit-of-pending-xml/

https://www.windowscentral.com/how-reclaim-space-reducing-size-winsxs-folder-windows-10

要刪除 pending.xml 也有不重開機的方法,可透過用管理員身分執行 DOS Command prompt,執行以下的指令

C:

Cd \windows\winsxs

取得該檔案的擁有權

takeown /f  pending.xml

重新賦予 pending.xml 使用者權限

cacls C:\Windows\winsxs\pending.xml /G :F

我用了檔案總管去看目前的授權,我自己把本機 administrator 賦予所有權限,然後刪除掉這個檔案,之後再執行以上步驟。

同時我看了我們的環境 winsxs 這個路徑下有很多目錄及檔案,這個應該是一些舊的更新檔案,也可以透過指令來計算那些檔案是不需要的然後刪除,其指令可以參考:

分析路徑下的內容:

dism /Online /Cleanup-Image /AnalyzeComponentStore

這個指令要跑一下下,比SFC 要快上很多,跑完後會有個建議值看要不要刪掉,可由自行判斷

清除指令

dism /online /Cleanup-Image /StartComponentCleanup

Windows DFS 機制異常解決

公司自行開發軟體的兩台服務主機我們有作 Load Balance,為求程式碼的統一,除了我們利用 Subversion 來控管外,這兩台主機我們也利用 DFS (分散式檔案系統) 來做同步,以免軟體更新只更新到其中一台造成執行異常。

上個周末機房跳電整個 UPS 電源被吃光,機器重新開機後發現檔案同步機制
異常檔案不會同步,經過查證後發現有 Event id 2004 的錯誤,使用 DFS 介面檢查一切正常,兩台主機也重啟服務,重啟電腦都無法解決這個問題,直到偶然使用網路分享檔案方式去檢查檔案,發現兩台主機的 Paging file 居然被改變到 DFS 同步的路徑下去。

閱讀全文 Windows DFS 機制異常解決

Windows 2008 Terminal Service 執行 Excel 2010 自動更新錯誤

由於公司現在常使用 Excel 直接撈取 Oracle 資料庫資料,但是發現在特殊的環境下這個功能執行起來會有錯誤訊息,在測試環境中我們設定 Windows 2008 開啟 Terminal Service 並在上面安裝 Office 2010,但是把本機執行正常的 Excel 檔案複製到 Windows 2008 Server 上去執行卻發生錯誤。

我們做了一些交叉測試,包括新增加 ODBC 的名稱、使用不同的 DB Driver ( M$ ODBC 或 Oracle Client) 都會出現錯誤,甚至於去變更 Excel 執行身分等,最終我們確認是相容性的問題,只要到 Excel.exe 內容選擇相容 Windows XP 模式執行就可以解決這個問題。

EXCEL 相容模式
EXCEL 相容模式

如何在 Windows 7 x64 安裝 AutoCAD 2008 32bit 版本

公司最近新購的機器都直接上 Windows 7 x64,但是因為AutoCAD版權的問題,需要把 32bit 的軟體安裝在 X64 上面,依照 AutoDesk 的安裝程式是無法直接安裝的。

Unable to install x86 software on x64 platform
Unable to install x86 software on x64 platform

閱讀全文 如何在 Windows 7 x64 安裝 AutoCAD 2008 32bit 版本

網路負載平衡 NLB 跨網域問題

上一篇架設好 MOSS 叢集後,發現子網站 (SitesXXX) 無法在其他外點被讀取,花了好幾天來 Debug,包括整個 MOSS 及資料庫刪掉重練,重新匯出匯入網站,調整了好幾天的備用存取對應(Alternate Access Mappings),都無法在分點正常的運作,最終終於找到正確的解法,令人出乎意料的解決方式。

首先說明一下 Load Balance 在微軟的平台有三種方式可以達成,分別是做 (1) Network Load Balance (NLB, 如同前一篇文章), (2) DNS Round Ribon, (3) 軟/硬體式的負載平衡器,其中(2)無法自動偵測機器當機而自動略過故障主機,(3)還需要額外的費用或資源,想當然耳還是(1)比較經濟實惠。


設定好之後再本地端測試一切都很正常,所有的分子網站也都能正常的顯示,在異地端測試主網站卻不能正常地顯示,調整 AAM 後勉強能夠讓各個MOSS (我有三台, 其中兩台做 NLB)都能分別顯示正常,但是一旦使用 NLB 的 IP 或名稱都無法正常連線。

閱讀全文 網路負載平衡 NLB 跨網域問題

建立 SharePoint 叢集服務,讓服務不中斷

第一步  設定分享磁碟 iSCSI

因為公司的伺服器都沒有購置光纖儲存裝置,所以跨 電腦共享的最快速的方式就是兩邊 都裝 iSCSI 起始器,建立最好的選擇就是放在 NetAPP 上,關於 NetAPP 建立步驟我就不再重複,這些資料應該都可以在網路上找到,比較要特別注意的是設定 Security Group,我是設定一個 Security Group 給 SQL Server 專用,讓不是經過設定的電腦是無法存取,保證資料的安全。

 

另外就是空間的大小,下一步的範例只是簡單的環境,而我是要用在正式環境,所以我把資料碟放大到 200G,不過 在 NetApp 上這些空間都是可以事後再調整,調整後切換到正在使用的 Cluster 主機去變更 Partition 大小就好了。

NetApp iSCSI Security Group
NetApp iSCSI Security Group

閱讀全文 建立 SharePoint 叢集服務,讓服務不中斷

升級 SSD BIOS

前一陣子把家用的桌機升級, 因為手邊大容量硬碟還有幾個, 所以在組裝上特別選購的兩個 Patriot 32G SSD 硬碟 來做為開機碟, 提升Windows 7 的執行速度, 搭配板子上 Intel P55 本身的 RAID 0 功能, 讓讀取及寫入效能發揮到極致.

Ps. 該產品其實是廠商在清庫存, 現在可以購買較新的產品.

執行速度上比一般的硬碟快上不少, 在開機上也節省的一些等待的時間, 約 40-50 秒就可以開機完成, 只是使用時常常發生整台機器卡住個幾分鐘, 原以為是防毒軟體的緣故, 更換之後發現也同樣有這個現象, 讓我想起先前的文章有人反映過這個問題, 必須要透過更換 SSD 的韌體來解決, 利用 Intel Raid 的軟體來看 SSD 韌體的版本並確認比官網上還要舊, 就著手來思考要怎麼換最節省時間.

該更新韌體版本必須要在 Windows 環境下執行, 但利用兩台做成 RAID 0 該軟體卻又認不到, 看起來必須要在 BIOS 就把 RAID 破壞掉, 升級後再回復原RAID的狀態, 同時升級時也會把 SSD 上所有的資料全部清除, 利用現有 Windows 系統來執行升級成事看起來是不可行.

所以我的步驟會調整成:

1.    把升級程式複製到其他硬碟或隨身碟內
2.    利用 Acronis True Image Home edition 把現有的Windows 7 複製起來, 之後可以不用重灌, 同時該版本可以認得 Intel 晶片所切出來的 RAID Volume.
3.    重新開機進入 BIOS 破壞原有的 RAID, 把所有的硬碟設定成 Non-RAID
4.    利用 XPE 或 Mini XP 等開機片進入, 此時應該可以找到兩顆未格式化的硬碟
5.    由其他顆硬碟或隨身碟執行升級軟體, 因為有兩台所以要升級兩次
6.    重複 4-5步驟確認升級成功
7.    重開進入 BIOS 後恢復 RAID 0 模式
8.    再利用 True Image 作 Restore 的動作
9.    完成後開機驗收

因資料本身也不多, 作RAID 0後最多也只有 59G 左右的資料量, 所以應該可以在 2小時內完工, 後續使用 SSD 還會不會卡卡的還需要觀察, 周日一天使用下來是沒有發現有卡機的現象.

遠端安裝卡巴

由於 Kaspersky 最近有促銷的活動, 剛好公司也需要更換一套新的防毒軟體, 所以就請廠商來介紹, 當然就順便 “ㄝ” 了一套來測試一下.

因為是測試機, 所以還是在 VM 主機上設定一台電腦來當主控電腦, 配置僅僅給 256M RAM 加上 8G 的硬碟空間, 系統採用 Windows 2003 Server (當然先前就已經安裝好, 直接複製過來使用的), 系統於安裝完畢進行 Windows 更新完畢後, 幾乎把硬碟空間吃光, 清除安裝檔案後也剩不到 1G, 未來正式佈署時硬碟空間要加倍比較保險, 當然 RAM 也要酌量加大.

首先在安裝上有遇到一些問題, 同事使用卡巴的控制台直接指定的電腦去安裝會產生失敗的回覆, 依照手冊重新製作 Network Agent 及兩個正式的安裝檔 WorkStation 及Server 都很順利, 過程請參考卡巴的安裝手冊

Redo Installed Package
Redo Installed Package

閱讀全文 遠端安裝卡巴