天天看點

Office 2010——一次完整的排障實錄

Office 2010(受保護的視圖)遇到問題需要關閉

                                                                        ——一次完整的排障實錄

        緣起:在學校時就是個“小白鼠”,喜歡嘗試一些新軟體。工作後雖然由于各種各樣的原因,不能再像學校時那樣狂熱,但一些勁頭仍然不減。于是乎Windows 7、Office 2010都是在Beta階段,我就開始嘗試。

        故障現象:Office 2010,當打開從其他來源的Office文檔時,會出現“(受保護的視圖)遇到問題需要關閉”的錯誤,并且提示“文檔已損壞”。

        小提示:

        Office 2010的新特性是打開非本機建立的檔案時會使用受保護的視圖打開,是以我的“其他來源”主要指幾個方面。

        其他來源:

        1.郵件中的附件:别人通過郵件發給我的附件,由于不是由本機建立的文檔,是以Office 2010會以受保護視圖打開。

        2.網絡下載下傳:比如從網上下載下傳的Office文檔,也屬于“其他來源”。

        3.其他途徑擷取的非本機建立Office文檔。比如使用優盤從其他電腦上複制到本機的檔案,都屬于“其他來源”。

        臨時方案:一時找不到解決方案,并且經過仔細觀察發現是進入到“受保護視圖”時出現的問題,而正常打開、編輯本機建立的文檔都沒有問題。“受保護視圖”是Office 2010中新推入的安全措施,以阻止惡意文檔對本機的破壞。如果讓Office以正常模式打開檔案應該就可以了。

        右鍵單擊文檔,在彈出的快捷菜單中選擇“屬性”,在打開的“屬性”對話框的“正常”标簽中,單擊“解除鎖定”按鈕,這時再打開文檔就不會再出錯了。

        這畢竟是臨時的解決方案,在實際使用中還是相當不便的,特别是打開郵件的附件,必須先儲存,然後解決鎖定才能打開,是以便決定要解決這一問題。

        排障實錄:

        1.借助搜尋引擎:我一直比較喜歡一句話“君子性非異也,善假于物也”,在網際網路高度發達的今天,有了搜尋引擎,便可以讓我們“一搜知天下事”。有了問題當然是先搜了,如果能找到答案,這樣就能提高效率了。

        2.事件檢視器:事件檢視器也是我比較喜歡的一個“工具”,因為很多系統、應用程式錯誤都會在事件檢視器裡留下痕迹。當看到事件檢視器裡的“Office Software Protection Platform Service”資訊時,我還一陣竊喜,以為可以找到有用的資訊,後來查資料才知道,該服務應該是Office進行版權驗證的一部分。

        3.Process Monitor:早些時候是FileMon、RegMon等幾個工具,如今已全部被整個到Process Monitor中了,通過Process Monitor可以監視目前系統的檔案讀寫、系統資料庫讀寫狀态。通過觀察Office的啟動過程,可以看到是進行到其中的某一步時才出錯,是以監控整個檔案打開過程,然後再分析這些資訊,理論上應該會有收獲。

        首先運作Process Monitor,停止監控(預設情況下Process Monitor運作後會自動監控),并清除監控資訊。關閉所有正在運作的程式以及可以停止的服務(為了保證監控到的資訊盡可能的少)。

        接下來在Process Monitor中開始監控,緊接着就打開之前打開會出錯的文檔(我這裡是一個Excel文檔),完成整個出錯過程後,停止監控,這時你會看到Process Monitor中的資訊是“海量”的。

        從上圖中可以看出,雖然隻是很短的時間,Process Monitor已經捕獲了十幾萬條資訊,如果逐條分析這些資訊,估計得要好幾天時間才能分析完了。

        接下來就是要将資訊逐漸壓縮,因為我這裡是關于Excel的,是以這裡添加一個過濾條件,程序名等于Excel的,這時可以看到資訊已經少了很多了。

        從上圖中看,雖然已經将Excel的資訊單獨過濾出來了,仍然有12W多條資訊,通過“Result”列的分析,SUCCESS的應屬于正常資訊,是以再添加一條過濾條件,Result不等于SUCESS的,這時可以看到資訊已經少了很多了。

        更進一步分析,因為打開檔案出錯基本上是進行到最後一步(受保護的視圖)時才出錯的,是以可以直接拖到比較靠後的地方進行分析,這次運氣比較不錯,一眼就看到一個“ACCESS DENIED”(拒絕通路),是以下一步的重點定位到這個拒絕通路的對象上來。

        通過搜尋快速定位到uxtheme.dll檔案,根據經驗,拒絕通路大部分都是因為NTFS權限引起的,直接檢視權限,發現目前的系統使用者确實沒有該檔案的通路權限。

        添加目前登入系統使用者,并授予完全控制權限,問題得到解決。

        PS:經查資料确認,uxtheme.dll是負責系統主題相關的檔案,不知道為什麼會和Office 2010的“受保護的視圖”有關。

        記下此排障過程,希望對一些朋友在解決問題的思路上有所啟發。

        故障重制方法:

        為了确認此一問題是由uxtheme.dll而引起的,在解決問題後,重新更改uxtheme.dll的NTFS權限,将目前使用者的通路權限删除。然後重新打開其他來源的Office文檔,故障依舊。是以據此可以判斷,問題确實是由uxtheme.dll檔案的通路權限而引起的。

        PS:上面隻是以Excel文檔為例,但并不是說隻會在Excel中才會發生。經實際測試,在目前使用者沒有uxtheme.dll的通路權限時,Word文檔、Excel文檔、PPT文檔都會出現此故障。上文隻是抛磚引玉,如果其他類型的Office文檔也現文中故障,可參照解決。如有不能解決的,歡迎留言共同探讨。

        排障環境:Windows XP SP3 + Office 2010 RTM

     本文轉自windyli 51CTO部落格,原文連結:http://blog.51cto.com/windyli/326491,如需轉載請自行聯系原作者

繼續閱讀