Process Monitor 学习笔记(5.13):从 0 到 1 的排障剧本清单(可复用模板)
Process Monitor 学习笔记(5.13):从 0 到 1 的排障剧本清单(可复用模板)
- Process Monitor 学习笔记(5.13):从 0 到 1 的排障剧本清单(可复用模板)
- 一、通用准备(开始前 60 秒)
- 二、通用采集模板(四步循环)
- 三、通用过滤与高亮(拷走即用)
- 3.1 最小三件套(过滤器 `Ctrl+L`)
- 3.2 高亮模板(`Ctrl+H`)
- 四、事件类别开关(只开必需)
- 五、长跑与体积控制(必看)
- 六、八大常见场景“剧本”
- A. 程序启动失败 / 闪退
- B. 安装/更新卡住或失败
- C. “文件被占用/无法覆盖”
- D. 配置不生效 / 读写错目录
- E. 网络访问失败(若版本支持 Network)
- F. CPU 异常/卡顿定位
- G. 登录/注销/关机慢
- H. 打印异常
- 七、证据打包清单(交付就用这套)
- 八、常见误判与反模式
- 九、附:可粘贴的过滤/高亮片段
- 十、附:一键采集(命令行思路)
- 结语
Process Monitor 学习笔记(5.13):从 0 到 1 的排障剧本清单(可复用模板)
目标:把前面 5.1–5.12 的要点沉淀为一键可复用的排障套路与清单,做到“能采、会看、可交付”。
一、通用准备(开始前 60 秒)
- 版本:使用较新 Procmon;管理员启动(必要时
Boot Logging
)。 - 时间:与系统/其他日志时间源对齐(误差≤1s)。
- 符号:
Options → Configure Symbols
指向内网或微软符号服务器(便于栈分析)。 - 目录:准备一个工作目录
C:\_trace\
(保存 PML/CSV、截图与说明)。 - 噪声预期:明确业务目标进程名/路径,列出可能相关的安全/网盘/管控软件。
二、通用采集模板(四步循环)
- 清屏:
Ctrl+X
- 开始:
Ctrl+E
(仅在准备复现前启动) - 复现:操作最小化、聚焦问题症状
- 立停:
Ctrl+E
立即停止,冻结证据现场
长时间复现:先配好过滤,再勾选 Drop Filtered Events 与 Backing Files(详见第 5 节)。
三、通用过滤与高亮(拷走即用)
3.1 最小三件套(过滤器 Ctrl+L
)
Process Name is <yourapp.exe> → Include
Result is SUCCESS → Exclude
Operation is ReadFile → Exclude (视情况,先降读噪声)
若存在父子进程链,用 Process Tree → 右键 → Include Subtree 代替逐个进程名。
3.2 高亮模板(Ctrl+H
)
Result is ACCESS DENIED → 红色
Result is NAME NOT FOUND → 橙色
Result is SHARING VIOLATION → 紫色
Detail contains Reparse → 黄色
Path contains \PMARK\ → 蓝色(你的语义锚点)
四、事件类别开关(只开必需)
- 初始只开 File System / Registry / Process & Thread
- 涉及联网问题再开 Network(若版本支持)
- 性能热点排查再开 Profiling
五、长跑与体积控制(必看)
- Drop Filtered Events:只保留“过滤后可见”的事件(强烈建议长跑时开启)。
- Backing Files:把环形缓冲落到磁盘,崩溃断电也不丢证据。
- History Depth:限制历史事件条数,避免无限增长。
- 导出策略:落盘 PML 为主;需要时间对齐再额外导 CSV。
六、八大常见场景“剧本”
每个剧本含:开关 → 过滤 → 观察点 → 常见结论 → 交付物
A. 程序启动失败 / 闪退
- 开关:File / Reg / Proc & Thread(必要时 Stack 符号)
- 过滤:
Process Name is xxx → Include
;Result is SUCCESS → Exclude
- 观察:
CreateFile/Load Image/RegOpenKey
失败、Process Exit
的Exit Status
- 结论:缺 DLL、路径拼错、权限不足(
ACCESS DENIED
)、被安全软件注入/拦截 - 交付:PML + 失败栈截图 + 缺失对象清单
B. 安装/更新卡住或失败
- 开关:File / Reg / Proc & Thread;必要时 Network
- 过滤:
Process Name contains setup/msi → Include
- 观察:
Temp\
、ProgramData\Package Cache\
写入失败;MSI
相关RegSetValue
- 结论:UAC/权限、磁盘/路径不可写、企业安全策略拦截
- 交付:失败点事件 + 具体路径/键值 + 说明所需权限
C. “文件被占用/无法覆盖”
- 开关:File
- 过滤:
Operation is CreateFile → Include
;Detail contains Deny
或Share
关注 - 观察:返回
SHARING VIOLATION
;查看 Stack 找占用方驱动/进程 - 结论:另一进程以独占/不兼容共享方式打开
- 交付:冲突进程/模块定位 + 关闭/停服建议
D. 配置不生效 / 读写错目录
- 开关:File / Reg
- 过滤:
Path contains \Config\ or .ini/.json → Include
- 观察:
Reparse
(被重解析到虚拟化/重定向路径)、注册表 Wow6432Node 混淆 - 结论:路径重解析/虚拟化、架构错误(x86/x64)、权限不足
- 交付:正确路径与错误路径对照 + 解决建议
E. 网络访问失败(若版本支持 Network)
- 开关:Network(+ File/Reg 看代理/证书)
- 过滤:
Process Name is xxx → Include
- 观察:连接失败码、重试节奏;本地证书访问/代理 DLL
- 结论:代理设置、TLS/证书、内核防护/端点安全拦截
- 交付:失败阶段 + 代理/证书栈证据
F. CPU 异常/卡顿定位
- 开关:Profiling + File/Reg(短时间窗口)
- 过滤:锁定进程;其它按需
- 观察:Profiling 事件与 Stack 热点模块
- 结论:热点函数/过滤驱动/第三方 Hook
- 交付:热点调用栈 + 版本/组件建议
G. 登录/注销/关机慢
- 开关:使用 Boot Logging;或按 5.6 流程记录登录/注销/关机
- 过滤:
Result is SUCCESS → Exclude
;关注长耗时操作 - 观察:漫游配置、脚本、网络磁盘/打印、CSE/GPO 扩展
- 结论:网络依赖慢、脚本卡、策略错误
- 交付:慢点清单 + 耗时截图 + 优化方案
H. 打印异常
- 开关:File(Spool 目录)/ Reg(打印机键)/ Proc
- 过滤:
spoolsv.exe
、spl/SHD
、驱动路径 - 观察:第三方端口监视器(常见不稳定点)
- 结论:端口监视器/驱动版本问题
- 交付:替换/禁用建议 + 成功对比
七、证据打包清单(交付就用这套)
problem_xxx_YYYYMMDD_HHMM.PML
(原始)problem_xxx.csv
(若需与其他日志对齐)screens_*.png
(关键事件/栈/过滤规则)readme.txt
:复现步骤、环境、预期/实际、结论与建议filters.pmf / highlights.phf
(你的过滤与高亮预设导出)
八、常见误判与反模式
- 误把“事件类别开关”当过滤器 —— 只改变显示,不减采集/体积
- 一直开捕获不暂停 —— 分析时光标乱跳且证据被覆盖
- 不看
Detail/Stack
—— 真凶常在访问掩码、重解析目标与栈中 - 长跑不启
Drop Filtered + Backing Files
—— 体积失控或关键证据滚没
九、附:可粘贴的过滤/高亮片段
过滤:只看目标进程的异常
Process Name is <yourapp.exe> → Include
Result is SUCCESS → Exclude
过滤:定位“被占用/拒绝访问/路径错”
Operation is CreateFile → Include
Result is SHARING VIOLATION → Include
Result is ACCESS DENIED → Include
Result is NAME NOT FOUND → Include
高亮:一眼看失败
ACCESS DENIED / NAME NOT FOUND / SHARING VIOLATION / Reparse / \PMARK\
十、附:一键采集(命令行思路)
GUI 为主,命令行用于无人值守或集成脚本(详见 5.9)。
:: 仅示意:启动捕获、应用过滤配置、运行 N 秒、保存并退出
procmon.exe /Quiet /BackingFile C:\_trace\case.pml ^/LoadConfig C:\_trace\filters.pmc ^/Minimized /Runtime 60 /Terminate
结语
把 Procmon 用成“剧本化的证据机器”,你就能在复杂现场做到:快速复现 → 精准取证 → 清晰结论 → 可交付整改。
本篇给出的是“默认剧本”,后续你可以基于场景沉淀自己的行业化模板库。