2011年11月18日

解決顯示「開啟或關閉 Windows 功能」時,列表為空白的問題

最近在 Windows 7 的作業系統想為 IIS 開啟一些功能,於是就到「控制台」→「程式或功能」的「開啟或關閉 Windows 功能」(或是執行 optionalfeatures.exe 檔案)列表去選擇一些功能,結果發現列表變成空白而沒有既定的功能可讓我選擇:


而微軟也發現了這問題,因此在 KB 931712 裡,提供了2個解決的方案,並且 google 了其它文章也有另外的解決辦法,不過遺憾的是這些解決方案一般都還是沒辦法消除這個問題,最有效的辦法就是重灌 Windows...,後來還是有在網路上找到一個有效解決的辦法,其解決步驟是:

第一步:下載 系統更新整備工具,請根據你的作業系統版本來選擇下載。

第二步:下載完畢後,先關閉其它正在執行的應用程式然後再執行這個更新檔,你會看到他試圖在安裝一些更新,其實他是在修正問題(他的背景處理程序是一個叫 checksur.exe 在運行著),這個修正需要花一段時間,請耐心等候。


第三步:當安裝完成後,重新啟動你的電腦。

第四步:電腦重新啟動完畢,再試試去使用「開啟或關閉 Windows 功能」看是否有修正成功,如果沒有就再往下一步動作。

第五步:請執行 %windir%\Logs\CBS\CheckSUR.log 這個路徑,這時會用記事本開啟這個檔案,接下來的步驟會有些棘手,因為每個人的結果都不太相同。

第六步:在這份記錄檔內找到 “Checking Package Manifests and catalogs” 這一行,下面則是列出這個分類有哪些問題,標示 (f) 代表有錯誤沒被修正,這一行內容包含錯誤代碼及所在路徑,而標示 (fix) 則代表剛安裝的更新檔已修正了部份的錯誤。


第七步:現在你必須根據那份 CheckSUR.log 所顯示的錯誤手動地刪除那些 registry keys。去啟動 regedit.exe 檔案並找到這個位置 → HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\ 而那些錯誤的 registry keys 就在這位置底下。

舉個例子告訴你們如何刪除:有一行錯誤是顯示 Package_5_for_KB938979~31bf3856ad364e35~x86~~6.0.1.2.mum,所以我們透過剛講的位置應該會找到不帶副檔名 mum 這字串 Package_5_for_KB938979~31bf3856ad364e35~x86~~6.0.1.2 的鍵值,點選並刪除它。

p.s. 你可能需要完整的權限(Full Control)才能將 registry keys 刪除。

刪除已損壞的註冊表後,應該就可以把這個問題修正了,而關於 "系統更新整備工具" 這檔案,還有其它好處是它還修正了其它你可能不知道的問題,所以它是一個滿實用的工具,如果作業系統有問題可以先執行它看是否可把問題修復。

1 則留言:

  1. 非常謝謝您的文章,幫我解決了問題,真開心!!

    回覆刪除