Win7操作系統用戶帳戶控制功能詳解收獲很多的( 四 )


Win7操作系統用戶帳戶控制功能詳解收獲很多的

文章插圖

圖 3 中顯示的默認設置就是其中一個新級別 。 與位于滑塊頂部并相當于 Windows Vista 中的默認模式的“始終通知”不同 , 只有當非 Windows 可執行文件請求提升時 , Windows 7 才會默認提示用戶;針對非 Windows 提升的行為與 Windows Vista 相同 。
下面接下來的滑塊位置是第二個新設置 , 它的標簽相同 , 只是后面附加了“(不降低桌面亮度)” 。 該模式和默認模式的唯一不同之處在于:提示將出現在用戶的桌面(而不是安全桌面)上 。 這樣的好處是:用戶可以在提示處于活動狀態的同時與桌面交互 , 但正如我之前提到的 , 將會出現第三方輔助功能軟件可能無法在該提示對話框上正常工作的風險 。
最后 , 如果選擇最底部的滑塊位置 , 將會完全禁用 UAC 技術 , 這樣 , 所有采用 PA 帳戶運行的軟件都將使用完全管理權限運行、文件系統和注冊表虛擬化將被禁用 , 并且保護模式 IE 將被禁用 。 盡管采用此設置時將沒有提示 , 但保護模式 IE 的損失是此模式的一個很大的弊端 。
自動提升:
在采用中間兩種設置時 , 之所以(大多數)Windows 可執行文件的提升不會產生提示 , 其原因在于系統“自動提升”了 Windows 可執行文件 。 首先 , 在此上下文中 , Windows 對 Windows 可執行文件的定義是什么?答案取決于若干因素 , 但有兩個條件必須得到滿足:該可執行文件必須經過 Windows Publisher 的數字簽名 , Windows Publisher 是用于對 Windows 附帶的所有代碼進行簽名的證書(僅由 Microsoft 進行簽名是不夠的 , 因此 Windows 未附帶的 Microsoft 軟件不包括在內);并且該可執行文件必須位于其中一個為數不多的“安全”目錄中 。 安全目錄是指標準用戶無法修改的目錄 , 并且它們包括 %SystemRoot%/System32(例如 , /Windows/System32)及其大多數子目錄、%SystemRoot%/Ehome , 以及 %ProgramFiles% 下的少許目錄(其中包括 Windows Defender 和 Windows 日記本) 。
同時 , 視可執行文件是普通 .exe、Mmc.exe 還是 COM 對象而定 , 自動提升還有一些附加規則 。 如果 .exe 種類的 Windows 可執行文件(如前面所定義)在其清單中指定了 autoElevate 屬性 , 這些可執行文件將會自動提升 。 應用程序也將在該清單中向 UAC 指明它們需要管理權限 。 此處的 Sysinternals Sigcheck 實用工具通過命令“sigcheck –m %systemroot%/system32/taskmgr.exe”來轉儲任務管理器 (Taskmgr.exe) 的清單 , 該清單顯示任務管理器已加入自動提升 , 如圖 4 所示 。
在目錄樹中查找自動提升可執行文件的一種簡便方法是 , 通過如下所示的命令使用 Sysinternals Strings 實用工具:
strings –s *.exe | findstr /i autoelevate
還有一個硬編碼列表 , 其中包含獲得自動提升處理的 Windows 可執行文件 。 這些 Windows 可執行文件也并非是 Windows 7 附帶的內部文件 , 因此它們必須能夠在 autoexecute 屬性會導致錯誤的舊版系統上運行 。 列表中包括 Migwiz.exe(遷移向導)、Pkgmgr.exe(程序包管理器)和 Spinstall.exe(Service Pack 安裝程序) 。
將對 Microsoft 管理控制臺 Mmc.exe 進行特殊處理 , 因為它承載了多個以 DLL 形式實現的系統管理管理單元 。 Mmc.exe 通過命令行啟動 , 該命令行指定一個 .MSC 文件 , 其中列出要加載的管理單元 MMC 。 Mmc.exe 將在通過 PA 帳戶啟動時請求管理權限 , 當 Windows 發現這一點時 , 它將驗證 Mmc.exe 是否為 Windows 可執行文件 , 然后檢查 .MSC 。 為了獲得自動提升資格 , .MSC 文件必須滿足 Windows 可執行文件條件(由 Windows 在安全的位置中簽名) , 并且必須列在自動提升 .MSC 的內部列表中 。 該列表實際上包括 Windows 附帶的所有 .MSC 文件 。
最后 , COM 對象可以通過創建一個名為 Elevation 的子項(其名為 Enabled 的值設置為 1) , 利用其注冊表項中的注冊表值來指定需要管理權限 。 圖 5 顯示了外殼的“復制”/“移動”/“重命名”/“刪除”/“鏈接”對象的注冊表項 , 當用戶對其帳戶沒有權限訪問的位置執行文件系統操作時 , 資源管理器將使用該對象 。
Win7操作系統用戶帳戶控制功能詳解收獲很多的

文章插圖

要使 COM 對象能夠自動提升 , 它還必須是 Windows 可執行文件 , 并且必須已由 Windows 可執行文件進行實例化 。 (不過 , 無需將實例化可執行文件標記為自動提升 。 )例如 , 當您使用資源管理器通過 PA 帳戶在 %ProgramFiles% 目錄中創建目錄時 , 操作將會自動提升 , 因為 COM 對象請求了提升、對象的 DLL 是 Windows 可執行文件 , 并且資源管理器是 Windows 可執行文件 。

推薦閱讀