最近某网友遇到了个问题。win10系统下,右击此电脑,点管理时;或者右击开始按钮,点计算机管理时(或设备管理器),会弹出警告提示:
用户账户控制
为了对电脑进行保护,已阻止此应用。
管理员已阻止你运行此应用。有关详细信息,请与管理员联系。
mmc.exe
发布者:未知
文件源:此计算机上的硬盘驱动器
程序位置:“C:\Windows\System32\mmc.exe” “C:\Windows\System32\compmgmt.msc” /s
关于这类问题,百度一下,千篇一律的都是让你修改“允许应用或功能通过Windows防火墙”,添加mmc.exe,设为允许。然而这方法并没有什么用,而且跟这问题扯不上关系。
其它的就是让你关闭UAC的,等同于导入以下reg内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"PromptOnSecureDesktop"=dword:00000000
"EnableLUA"=dword:00000000
"ConsentPromptBehaviorAdmin"=dword:00000000
"FilterAdministratorToken"=dword:00000001
这个有用,但并不是问题根本所在。
给网友用了上面导入reg的方法作为临时解决方案后,想办法在虚拟机里还原故障。
测试了下发现,开启UAC的情况下,打开第三方需要管理员权限的程序,系统会弹出用户账户控制通知,而打开计算机管理或设备管理器不会有提示,同样的任务管理器也是没提示。
网友电脑任务管理器可以正常运行,跟mmc.exe相关的菜单项无法正常打开,而通过管理员命令行打开时又正常,那么问题应该跟自动提权有关。
网上搜了下系统进程自动提权的资料,猜测mmc.exe损坏了。试了下修改mmc.exe十六进制,成功还原故障!
对于这个问题,应该可以用以下命令解决:
sfc /scannow
或者先执行下面命令,再执行上面命令(需win8及以上系统):
dism /online /cleanup-image /restorehealth
判断mmc.exe是否损坏,可以用Sysinternals的工具sigcheck.exe校验mmc.exe的数字签名。
这个问题可能跟硬盘故障(如坏道)或内存问题有关,或者是异常关机导致文件损坏,还可能是病毒感染了mmc.exe等。
补充其余原因:
- Cryptographic Services(CryptSvc)服务无法正常启动时
- C:\Windows\System32\catroot或catroot2下的文件损坏时。如Microsoft-Windows-Client-Features-Package*.cat等文件损坏。