实测 Process Monitor 的系统启动日志功能确实强
实测 Process Monitor 的系统启动日志功能确实强
Process Monitor是Sysinternals Suite中的一个系统监控工具,其启动日志功能可以记录系统启动过程中的各种进程活动信息。本文将详细介绍如何使用Process Monitor生成启动日志,并将其与Windows自带的MSCONFIG启动日志和系统事件日志进行对比。
如何使用Process Monitor生成启动日志
为简化行文,以下一律用PM指代Process Monitor。
图形界面操作
- 打开Process Monitor,在OptionsMenu中勾选Enable Boot Logging,如图1所示:
确认设置后关闭Process Monitor,重启计算机。
重启后等待一段时间,让PM充分收集系统后台各种进程产生的活动信息。可以根据需要选择在登录前或登录后等待。
再次运行PM,PM会提示是否保存本次产生的启动日志,如图4所示:
- 确认并指定保存路径后,PM会把缓存的启动日志保存为PML格式文件,并在完成保存后自动打开查阅,如图5所示:
启动日志还可以另存为CSV格式,但要注意CSV文件太大时,电子表格软件可能无法处理。
命令行操作
以上过程也可以通过命令行进行。PM的命令行参数如图6所示:
启用启动日志的命令:
procmon /EnableBootLogging
完成重启登录后,获取启动日志的命令:
procmon /ConvertBootLog PML文件名
使用注意事项
确保C盘有足够的空间让PM暂存启动日志。一次完整的系统启动,其需要的启动日志空间至少1GB。
保存PML日志记录文件时,保存位置应指定为本地硬盘而不要指定到网络路径。尤其是如果保存位置指定为VMware Workstation Pro宿主机和虚拟机之间的共享文件夹路径时,可能会导致数据丢失。
PM支持命令行操作,可以结合任务计划实现自动化。
启动日志的设置有可能启用失败,解决办法是删除Drivers目录下已存在的PROCMON23.SYS驱动程序文件。
PM启动日志内容观察
观察获得的启动日志,第一条日志是SMSS.EXE产生的。特别是,可以注意到它的Parent ID是4,如图7所示:
SMSS.EXE(Session Manager Subsystem)是Windows中非常重要的系统程序文件,负责管理和启动用户会话环境。从任务管理器中可以看到PID=4的进程是System伪进程本身,如图8所示:
因此,PM启动日志能截获的进程活动信息是在系统启动过程中相当早的位置就开始的,确实强。
与Windows MSCONFIG启动日志、系统事件日志的区别
通过日志性质和内容的比对,观察它们的区别。作了个简要的比对汇总如下表:
特征 | PM启动日志 | MSCONFIG启动日志 | Windows事件日志 |
---|---|---|---|
性质 | 行为 | 信息 | 信息及行为 |
格式 | 平铺矩阵 | 清单 | XML树状 |
控制 | 一次性 | 持续 | 持续 |
信息量 | 巨大 | 不具可比性 | 巨大 |
内容范围 | 基于进程 | 仅驱动程序清单 | 全面 |
时间范围 | 引导第3阶段启动SMSS.EXE开始至用户介入结束 | 仅引导第3阶段内 | 引导第3阶段开始直至系统关机 |
MSCONFIG启动日志
运行MSCONFIG.EXE,勾选启动日志,确定退出MSCONFIG后重启系统,就会在Windows目录下生成NTBTLOG.TXT文件,其内容如图10所示。该勾选项是持续有效的。
从日志文件内容可发现,MSCONFIG.EXE产生的启动日志信息量太少,其使用目的只是为了列出系统启动期间加载的驱动程序的清单,和其他两项基本没有多少可比性。而且,该日志很容易被篡改,导致在正常启动情况下意义不大。
Windows事件日志
在组策略设置中开启一大堆审核开关后才会产生足够丰富的输出,例牌顺带吐个槽,“审核”实应为“审计”,因为英文原文为audit。微软自从使用机器翻译后组策略编辑器内出现大量翻译错误。
比如,在组策略中开启了审计进程创建后,如图12的事件日志(自定义视图,结合了系统日志和安全日志)就可以显示从Registry这个伪进程被创建开始的进程创建信息。
它这比PM的记录从SMSS.EXE开始还要早,但差别不大,也就一个身位。
两厢对比就会发现,Windows系统事件日志,在记录系统启动过程这个使用范围内,PM启动日志对其是很好的补充。关键在于,Windows系统事件日志的定位是记录系统运行逻辑,以信息及行为共同表达。所以它提供的信息的详尽性是侧重于表达运行逻辑的,缺乏了像PM输出的这种进程活动行为情况。
而且,PM提供的信息比事件日志要丰富,工具使用人的自主针对性也更强。另外,Windows系统事件日志的查阅筛选操作在事件查看器内十分不方便,一般还要使用事件日志查看工具才能提高效率。
实测结论
- PM的启动日志功能颇为有用,适宜作为Windows事件日志的补充;
- 高风险环境可考虑通过任务计划程序设置每次开机均记录和存档PM启动日志。