閩人
從圖1所示的錯(cuò)誤提示中可以大致判斷出這是管理員設(shè)置了某個(gè)限制條件,從而導(dǎo)致程序無法運(yùn)行。雖然在圖1的提示中并沒有給出明確的原因,但是在Windows10系統(tǒng)中,程序運(yùn)行出錯(cuò)后都會自動記錄在系統(tǒng)日志中,因此我們可以通過查看日志來查找原因。不過由于現(xiàn)在無法運(yùn)行本機(jī)中的mmc.exe,所以也就無法啟動“事件查看器”來查看日志,這時(shí)可以從下面的兩種方法中任選其一來查找原因:
一種方法是將日志文件復(fù)制到其他的電腦中查看。我們先在桌面的任務(wù)欄搜索框中輸入“mm c. exe”,再運(yùn)行一次該命令,在出現(xiàn)圖1所示的錯(cuò)誤提示時(shí)點(diǎn)擊“關(guān)閉”(目的是為了能查看到最新的事件記錄,便于更快速地找到對應(yīng)的日志)。接著進(jìn)入“C:\Windows\System32\Winevt\Logs”,將其中的“Application.ev t x”(因?yàn)槭浅绦蜻\(yùn)行問題所以選擇該文件)傳輸?shù)狡渌碾娔X中(圖2),然后在該電腦中雙擊它,這時(shí)就會通過“事件查看器”打開該文件,在左側(cè)的工具欄中依次展開“保存的日志→Application”,在右側(cè)的窗格中定位到最新的警告日志,在下方的“常規(guī)”處就會給出mmc.exe無法運(yùn)行的原因,是由于管理員通過路徑策略規(guī)則對其做了限制(圖3)。
另一種方法是使用PowerShell命令行來查找。在本機(jī)中以管理員身份啟動PowerShell.exe,接著輸入“Get-WinEvent-ProviderName"Microsoft-Windows-SoftwareRestrictionPolicies"|select-object-propertyMessage”并回車,從圖4中也可以看到,cmd.exe、mmc.exe等程序是被管理員通過策略規(guī)則做了限制(圖4)。
通過上面的兩種方法我們都可以找到產(chǎn)生問題的原因,解決的方法是通過組策略編輯器來取消對應(yīng)的限制。不過由于本機(jī)無法運(yùn)行mmc.exe,因此也暫時(shí)無法啟動組策略編輯器(運(yùn)行組策略編輯器需要通過該程序加載gpedit.msc)。但策略的設(shè)置大多是通過在注冊表中添加或更改指定的鍵值生效的,因此我們可以先通過注冊表找到相應(yīng)的鍵值,再通過刪除鍵值來恢復(fù)mmc.exe的運(yùn)行。
從圖3所示的界面中可以看到,每個(gè)被限制的程序都提供了其策略規(guī)則所對應(yīng)的GUID數(shù)值,比如mmc.exe對應(yīng)的GUID數(shù)值為“{4ec2a0b9-359b-4cc0-9629-08f0df64fcb9}”,它實(shí)際上就是限制策略在注冊表中所對應(yīng)的鍵值項(xiàng),我們只要?jiǎng)h除它就可以了。啟動注冊表編輯器,依次點(diǎn)擊“編輯→查找”,在“查找目標(biāo)”處輸入該GUID數(shù)值,“查看”選項(xiàng)下勾選“項(xiàng)”和“全字匹配”,然后點(diǎn)擊“查找下一個(gè)”(圖5),這樣會自動定位到該GUID數(shù)值所在的位置,即[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers\0\Paths\{4ec2a0b9-359b-4cc0-9629-08f0df64fcb9}]。在右側(cè)的窗格中可以看到“ItemData”的數(shù)據(jù)就是“c:\windows\system32\mmc.exe”(這就是mmc.exe無法運(yùn)行的原因),按提示右擊“ItemData”并選擇“刪除”(圖6)。
完成上述的操作后返回桌面,在任務(wù)欄搜索框中輸入“gpedit.msc”,在搜索結(jié)果中點(diǎn)擊“以管理員身份運(yùn)行”,此時(shí)就可以正常打開組策略編輯器了(圖7)。
接著依次展開“計(jì)算機(jī)配置→Windows設(shè)置→安全設(shè)置→軟件限制策略→其他規(guī)則”,在右側(cè)的窗格中即可看到設(shè)置的規(guī)則,按提示將右側(cè)cmd.exe、mmc.exe的規(guī)則全部刪除(圖8)。重啟系統(tǒng)后再次運(yùn)行mmc.exe,未彈出圖1所示的錯(cuò)誤提示,自此順利地解決該問題。
在運(yùn)行程序出錯(cuò)時(shí)如果系統(tǒng)已經(jīng)給出明確的提示,比如“你可能沒有適合的權(quán)限訪問該項(xiàng)目”,那就可以根據(jù)該提示去解決問題(如設(shè)置對程序的權(quán)限為“完全控制”即可)。否則不妨參照本文所介紹的方法來查找出現(xiàn)問題的原因,再通過原因來尋求相應(yīng)的解決方案。