俞木發(fā)
有時我們以管理員身份運(yùn)行系統(tǒng)中正常的程序(如mmc.exe)時,系統(tǒng)會彈出阻止運(yùn)行的提示;在運(yùn)行所有提權(quán)程序(如regedit.exe)時,也彈出類似的提示(圖1)。
從圖1可以知道,UAC可以正確識別文件的發(fā)布者,而且點(diǎn)擊“顯示發(fā)布者的證書信息”,也沒有發(fā)現(xiàn)程序的證書有問題,說明mmc.exe本身是沒有問題的。這個原因大多是由于系統(tǒng)的“CryptographicServices”服務(wù)出錯而導(dǎo)致的,該服務(wù)的作用是“用于確認(rèn)Windows文件的簽名和允許安裝新程序”。如果該服務(wù)異常(如沒有正常啟動或者其依賴的加密服務(wù).EDB數(shù)據(jù)庫文件損壞),那么就會導(dǎo)致UAC在校驗(yàn)文件簽名時出錯,從而激活UAC阻止程序運(yùn)行。
解決方法:先檢查本機(jī)服務(wù)的狀態(tài)。打開服務(wù)管理窗口,在服務(wù)列表中找到上述的服務(wù),雙擊并打開后要確保該服務(wù)的狀態(tài)是“正在運(yùn)行”,啟動類型則為“自動”,若為停止?fàn)顟B(tài)則會出現(xiàn)上述的故障(圖2)。
如果在圖2所示的界面中無法正常啟動該服務(wù),那么原因可能就是數(shù)據(jù)庫文件損壞,可以用管理員身份啟動PowerShell,輸入下列的命令重建數(shù)據(jù)庫(每輸入一行命令后均需回車確認(rèn),下同),重啟后即可解決。
Stop-Servicecryptsvc
Rename-Item-Path"C:\Windows\System32\catroot2"-NewNamecatroot2.old
Restart-Compute
如果UAC無法正確識別文件的發(fā)布者(即發(fā)布者顯示為“未知”),比如在很多運(yùn)行家庭版Windows10的電腦上運(yùn)行組策略編輯器時,系統(tǒng)也會出現(xiàn)類似的攔截提示(圖3),這個原因可能是由于Windows10家庭版本身沒有組策略編輯器,導(dǎo)致當(dāng)前賬戶可能沒有足夠的權(quán)限來運(yùn)行mmc.exe加載gpedit.msc文件。解決的方法是,先在任務(wù)欄上的搜索框中輸入“secpol.msc”,然后依次展開“本地策略→安全選項(xiàng)”,雙擊右側(cè)窗格中的“用戶帳戶控制:以管理員批準(zhǔn)模式運(yùn)行所有管理員”,將其設(shè)置為“已禁用”,重啟后即可解決(圖4)。
如果我們是在運(yùn)行一些第三方程序,如網(wǎng)上下載的程序,安裝時系統(tǒng)彈出攔截提示,大多是系統(tǒng)認(rèn)為該程序有惡意代碼或者安全隱患所導(dǎo)致,比如筆者在安裝某款軟件時就彈出攔截提示,只能點(diǎn)擊“關(guān)閉”,無法完成安裝(圖5)。
如果我們可以確認(rèn)需要安裝的程序是安全的(如軟件是從官網(wǎng)下載的),那么可以先以管理員身份啟動命令提示符,輸入命令“D:\tools\file\diskgenius.exe”(不含外雙引號,具體程序路徑請參考圖5所示的“程序位置”顯示),回車后就可以啟動安裝(圖6)。因?yàn)樵谝怨芾韱T身份運(yùn)行的命令提示符下可以屏蔽UAC的攔截,從而直接運(yùn)行安裝程序。這里需要注意的是,一定要確保運(yùn)行的程序是安全可靠的。
在Windows 10中,所有需要提權(quán)運(yùn)行的程序如果有數(shù)字簽名,那么啟動程序時UAC都會進(jìn)行簽名的驗(yàn)證,程序的簽名已經(jīng)過期或者被撤銷,那么UAC就會彈出類似圖5所示的提示。比如筆者近日運(yùn)行的某程序,在彈出攔截窗口時點(diǎn)擊“顯示發(fā)布者證書信息”,接著再依次點(diǎn)擊“數(shù)字簽名→詳細(xì)信息”,在打開的窗口中可以看到數(shù)字簽名信息中顯示“證書已被頒發(fā)者直接吊銷”,所以這類程序一運(yùn)行就會被UAC攔截(圖7)。
對于這類程序,如果我們需要在Windows 10中正常運(yùn)行它們,可以使用SignRemv(下載地址:https://share.weiyun.com/FYP2N0F6)來移除其簽名。啟動程序后點(diǎn)擊“瀏覽”,然后將需要移除簽名的程序?qū)?,點(diǎn)擊“移除簽名”即可(圖8)。
完成簽名的移除后,再次右擊程序并選擇“屬性”,在程序的屬性窗口中就沒有“數(shù)字簽名”的選項(xiàng)卡了(圖9)。這樣程序運(yùn)行后會彈出UAC正常的提權(quán)提示,我們只要點(diǎn)擊“是”運(yùn)行即可。