HOWTO: 为 MMC 管理器无法关闭进行排错
今天 gOxiA 跟大家分享一个 MMC 管理器无法关闭的排错案例,具体故障现象是使用 Hyper-V 管理器后关闭时会遭遇其管理控制台无法关闭的故障问题,具体提示内容是“关闭 Hyper-V 管理器前你必须关闭所有会话框”。
常规排错时,我们可以使用 ProcessMonitor 工具进行分析,从 Procmon 的日志来看管理器关闭失败的原因,它检测到了有 PropertySheets 的窗口还开着,可能的原因是有 Invisible 的窗体被归到了 Hyper-V 管理器的进程上。
接下来我们可以打开任务管理器确认当前发生故障问题的 MMC 的 PID 值,然后将其转换为16进制。之后使用 Microsoft Spy++,将视图改为 Process 模式,通过前面的16进制值,定位 MMC 的进程,并展开它来排查具体线程。
在本例中可看到一个可疑的线程包含 GDI+ Hook Windows Class 以及 Default IME。尝试切换输入法重新关闭 Hyper-V 管理器,已经可以正常关闭。日常当我们遇到 Windows 的一些异常问题时可以借鉴这个案例进行排查。