原文摘自
ITECN Blog
,作者:盆盆
原文地址:
點擊查看
ITECN Blog
是由近40位微軟MVP和MCT、還有微軟員工組成,旨在宣傳微軟IT Pro技術
作者盆盆
難度 Level200
連結
http://blogs.itecn.net/blogs/winvista/archive/2006/10/08/3777.aspx
介紹Windows Vista文章寶庫,網址
http://vista.itecn.net/
,旨在研究和推廣Windows Vista技術,由多位Microsoft MVP和其他技術愛好者組成。大部分成員接受過微軟中國組織的Windows Vista講師培訓,其中四位MVP還在新加坡接受過微軟Windows Vista部門的專門培訓。
在拙作
《Windows Vista IE保護模式深度剖析》
中曾經提到紫光拼音無法在IE瀏覽器裡正常調用,並且還給出一個方法,可以手動建立NTFS的符號連結,以欺騙紫光拼音。
在實際的使用過程中,發現這個方法在大多數時候可以正常工作,但是如果在開啟IE之前,已經調用過紫光拼音,則可能無法在IE瀏覽器裡順利啟動紫光拼音。
在筆者的那篇文章裡還提到,Windows Vista沒有內建的工具,無法查看和設定檔案夾的完整性層級。
果真是這樣嗎?
筆者有幸在Tech.Ed北京聽了IE保護模式的負責人Robert Gu的一堂課,瞭解到Windows Vista其實內建了一款命令列工具Icacls.exe,可以用它來查看和設定指定檔案夾的完整性層級。
提示
Robert Gu,微軟總部的首席開發主管,目前負責IE 7安全的開發。他是EFS演算法的發明者,曾主導EFS、PKI的開發,是華人中的驕傲。
現在我們可以大膽猜測,既然有現成的Icacls.exe可供使用,則完全可以用它來把紫光拼音的工作目錄“%AppData%\Unispim”的完整性層級設定為“低級”,這樣無論是IE進程(低級)和外部的進程(中級),都可以訪問該工作目錄,紫光拼音就可以工作正常。
說做就做,接下來就以Windows Vista RC2 Build 5744為例進行介紹(需要注意的是,該Icacls命令在RC1下無法正常工作):
1.首先需要給當前的帳戶增加“修改一個對象標籤”特權,其內部名稱為SeRelabelPrivilege。方法是運行secpol.msc,開啟“本地安全性原則”嵌入式管理單元,在左側主控台樹狀目錄中展開本地策略、使用者權限分配,在右側詳細窗格裡定位到“修改一個對象標籤”策略項,雙擊該策略項,把當前的登入帳戶添加進去,如附圖所示。
2.登出重新登入,然後以管理員權限運行命令提示字元,在命令提示字元下輸入以下命令:
Whoami/all |find /i "SeRelabelPrivilege"
結果如附圖所示,這表示當前登入使用者已經擁有SeRelabelPrivilege特權,只是狀態為禁用。
3.然後運行以下命令:
Icacls.exe %AppData%\Unispim /SetIntegrityLevel Level:L
命令結果如附圖所示,表示成功完成。
4.可以繼續運行以下命令,查看%AppData%\Unispim目錄的完整性層級:
Icacls.exe %AppData%\Unispim
命令結果如附圖所示,表示該目錄的強制完整性層級為“低”。
經過這樣處理以後,就可以正常在IE瀏覽器裡啟用紫光拼音了,而無法針對特定網站禁用IE保護模式。如果偶爾發現無法在IE裡啟動紫光拼音,這時候不要著急,只需關閉其他啟用IME的程式,一般是Outlook、Word、Notepad等編輯程式,然後就可以在IE裡正常使用紫光拼音。
接下來,還有兩個問題:
1.細心的讀者朋友發現用Whoami/all命令查看目前使用者的存取權杖時,發現SeRelabelPrivilege特權是禁用的。而這個特權正是用來設定對象的完整性層級,那麼這時候為什麼Icacls命令可以成功運行?
原來當運行Icacls命令設定目錄的完整性層級時,該Icacls進程的存取權杖會自動啟用SeRelabelPrivilege特權,以便命令能夠順利完成。
2.由於Windows Vista RC1下的Icacls命令不能正常工作,這裡可以下載一個第三方的命令列工具chml.exe,該工具是由Mark Minasi製作的(《Mastering Windows Server 2003》一書的主要作者),該工具的:
http://www.minasi.com/vista/chml.exe
注意 chml的使用文法和Icacls不同,具體使用方法請參考其線上說明資訊!
本貼來自天極網群樂社區--http://q.yesky.com/group/review-8437195.html