俞木發(fā)
如上所述,一些程序安裝后默認需要使用UAC的提權(quán)方式運行,它們的目的當(dāng)然是為了能在后臺隨意地修改你的系統(tǒng)設(shè)置或文件,這很容易給系統(tǒng)帶來安全隱患。比如某游戲程序的安裝路徑是“C:\Program Files(x 8 6)\We G ame\We g ame .exe”,安裝后可以看到這是一個需要提權(quán)才能運行的程序,在程序的圖標(biāo)(或快捷方式)右下角會自帶一個藍色盾牌標(biāo)記,為了便于描述,下面稱這類程序為“盾牌程序”(圖1)。
這樣在默認情況下只能以管理員身份運行,我們只能在彈出UAC攔截時被動地點擊“是”提權(quán)運行,如果點擊“否”則會自動關(guān)閉程序(圖2)。
那么怎么判斷“盾牌程序”是否是以提權(quán)方式運行的呢?可以借助任務(wù)管理器來查看。如在圖2所示的界面中點擊“是”運行程序,接著啟動任務(wù)管理器,切換到“詳細信息”,然后在“PID”上右擊并選擇“顯示列”,在打開的“選擇列”窗口中勾選其中的“特權(quán)”。返回任務(wù)管理器,便可以看到“wegame.exe”進程的“特權(quán)”下顯示的值為“是”,表示其運行在特權(quán)狀態(tài)下,程序是通過UAC提權(quán)運行的(圖3)。
實際上這些程序是可以在正常權(quán)限下運行的。不過,我們需要通過自制批處理才可以實現(xiàn)。首先啟動記事本程序,然后輸入下列的代碼,將其保存為“cfan .bat”并放置在桌面上(圖4)。
代碼解釋:
第一行代碼設(shè)置程序的實際路徑。如果需要使用其他的程序,請自行更換“ApplicationPath=”后的路徑即可。第二行代碼則使用命令提示符的方式啟動指定的程序,并為其設(shè)置“RUNASINVOKER”屬性運行。
這樣,以后當(dāng)我們需要啟動圖1所示的游戲時,只要運行“cfan.bat”即可。程序成功運行后,再次打開任務(wù)管理器,切換到“詳細信息”,可以看到“wegame.exe”進程,其“特權(quán)”下顯示的是“否”,表示程序是使用標(biāo)準(zhǔn)權(quán)限運行。這樣既可以很好地限制“we g ame.exe”對系統(tǒng)的更改,同時又可以保證UAC默認的攔截功能沒有變化(圖5)。
對于一些已經(jīng)確定是安全的程序,我們則可以通過以管理員身份啟動桌面進程(explorer.exe)來繞開UAC的攔截。不過,我們無法直接在“explorer.exe”上右擊選擇“以管理員身份運行”方式實現(xiàn),需要先以管理員身份運行“PowerShell”,然后依次輸入下列的命令(每輸入一行命令后均需回車確認)(圖6):
taskkill /f /im explorer.exe
c:\windows\explorer.exe /nouaccheck
代碼解釋:
先使用taskkill命令來強行結(jié)束當(dāng)前系統(tǒng)的explorer.exe進程,接著再使用“/nouac check”參數(shù)啟動explorer.exe進程。
上述的命令運行后會自動關(guān)閉桌面,接著又會自動重新加載桌面。由于重新加載的“explorer.exe”進程是在管理員身份運行的Powe r S h e l l中啟動,因此該進程自動繼承管理員權(quán)限,現(xiàn)在我們在桌面啟動的“盾牌程序”都可以繞開UAC攔截。
比如在執(zhí)行系統(tǒng)維護操作的時候,我們經(jīng)常要頻繁地運行一些“盾牌程序”,如regedit.exe、mmc.exe等,現(xiàn)在則只需在“運行”框中輸入“regedit.exe”并回車,就可以直接啟動注冊表編輯器(常規(guī)桌面下則需要在彈出UAC攔截時點擊“是”才可以運行)。啟動注冊表編輯器后參照圖3所示的方法,在任務(wù)管理器可以看到“regedit.exe”進程的“特權(quán)”顯示為“是”(圖7)。
此外,在這個桌面狀態(tài)下運行的其他程序默認也都是以管理員身份運行。比如在“運行”框中輸入“c m d.e xe”并回車,運行后顯示的窗口標(biāo)題就是“管理員:命令提示符”,可以在其中輸入“diskpar t”命令(該命令需要管理員權(quán)限才可以正常運行)進行測試(圖8)。
注意:屏蔽了UA C 的攔截后,請勿在這種狀態(tài)下運行一些危險程序。完成維護操作后,請去除“/nouaccheck”參數(shù),再次運行圖6所示的命令恢復(fù)到正常設(shè)置。