当前位置: 首页 > news >正文

Process Monitor 学习笔记(5.15):三大经典实战(文件被占用 / 启动慢 / 权限失败)与标准排错流程

Process Monitor 学习笔记(5.15):三大经典实战(文件被占用 / 启动慢 / 权限失败)与标准排错流程

  • Process Monitor 学习笔记(5.15):三大经典实战(文件被占用 / 启动慢 / 权限失败)与标准排错流程
    • 一、复现前 Checklist(10 秒过一遍)
    • 二、通用过滤与高亮模板
    • 三、实战一:**文件无法删除**(谁在锁我?)
    • 四、实战二:**程序启动慢**(卡在哪一步?)
    • 五、实战三:**安装/更新失败(权限问题)**
    • 六、无人值守采集脚本模板(启动→复现→停止→导出)
    • 七、判读“口令卡”(遇事先看它)
    • 八、交付模板(一页说清楚)
    • 结语

Process Monitor 学习笔记(5.15):三大经典实战(文件被占用 / 启动慢 / 权限失败)与标准排错流程

目标:把 Procmon 变成“现场问题定位器”。本文用三个最常见场景做演示,并给出可复用的采集与判读清单 + 自动化脚本模板。


一、复现前 Checklist(10 秒过一遍)

  • Ctrl+X 清屏,Ctrl+L 确认过滤规则只保留目标范围。

  • 打开 Highlight:给 ACCESS DENIED / NAME NOT FOUND / SHARING VIOLATION 上色。

  • 需要长时间追踪?启用

    • 工具栏 Drop Filtered Events(只保留过滤后可见事件)
    • Backing Files(写入磁盘缓冲,防崩溃丢证据)
  • 需要看调用栈?先配置符号再抓(Options → Configure Symbols)。

  • 复现场景:Ctrl+E 开→复现→Ctrl+E 关,立即保存 PML。


二、通用过滤与高亮模板

基础过滤(按需精简):

Process Name is <yourapp.exe>      → Include
Result       is SUCCESS             → Exclude (排错期先去掉成功噪声)
Operation    is IRP_MJ_*            → Exclude (通常无需内核 I/O 细节可先关)

高亮建议:

ACCESS DENIED        → 红色
NAME NOT FOUND       → 橙色
SHARING VIOLATION    → 紫色
Detail contains Reparse/Redirect → 黄色

小技巧:列最小集合 = Time of Day / Process Name / PID / Operation / Path / Result / Detail / Duration(勾选)


三、实战一:文件无法删除(谁在锁我?)

症状:删除/覆盖/移动文件失败,提示“文件被占用”。
思路:看 CreateFile + 失败结果,反查占用进程与句柄来源。

步骤:

  1. Ctrl+X 清屏 → Ctrl+E 开始捕获 → 执行“删除/覆盖”动作 → Ctrl+E 停。

  2. 过滤:

    Operation  is CreateFile     → Include
    Path       contains <目标文件或父目录> → Include
    Result     is SHARING VIOLATION → Include
    
  3. 定位第一条失败事件,右键 Process Tree → 选中该进程 Include Subtree(它的子进程也纳入视野)。

  4. 同时查看上一段时间同路径的 CreateFile / ReadFile / WriteFile

    • 哪个进程先打开了该文件?
    • Detail 里是否带 Desired Access: Read/Write, ShareMode: None(不共享导致他人写入受阻)?
  5. 打开 Stack(需符号)判断占用来源(杀软/索引/云盘/预览器/缩略图生成器等)。

常见结论与建议:

  • 预览器/索引服务以独占模式打开 → 关闭预览窗格或改共享模式。
  • 云盘/备份客户端占用 → 暂停同步或排除该路径。
  • 杀软实时监控 → 临时加入排除列表验证。

四、实战二:程序启动慢(卡在哪一步?)

症状:应用冷启动/首开明显变慢。
思路:增加 Duration 列,排序看“最慢操作”,再跟进调用栈与重解析。

步骤:

  1. 列设置勾选 DurationCtrl+XCtrl+E → 启动应用 → 就绪后 Ctrl+E 停。

  2. 过滤:

    Process Name is <yourapp.exe>     → Include
    Operation   is CreateFile/RegOpenKey/Load Image/TCP Connect → Include(先从这几类开始)
    
  3. 按 Duration 降序排序,重点关注:

    • 远程路径(\\server\share\...)、重解析(Detail: Reparse 指向云盘/虚拟路径)、
    • 缺失文件导致的反复 NAME NOT FOUND(错误的搜索探测)、
    • 注册表查询链路异常长(策略/COM 解析)。
  4. 若怀疑模块加载慢,关注 Load Image(DLL/插件)与 Detail 中的签名验证、路径重定向。

  5. 打开 Stack 定位慢点来自何库(网络组件、杀软、DLP、Hook、组策略扩展)。

常见结论与建议:

  • 网络路径超时:改本地缓存或优化超时/离线策略。
  • 云盘重解析:排除运行目录、禁用按需加载测试。
  • 证书验证/下载:配置受信链或启用离线缓存。
  • 组件探测“海量 NAME NOT FOUND”:裁剪探测列表或修正搜索路径。

五、实战三:安装/更新失败(权限问题)

症状:安装器报错或静默失败。
思路:抓 ACCESS DENIED,看具体路径(文件/注册表)与目标配置单元(HKLM/HKCU)。

步骤:

  1. Ctrl+XCtrl+E → 运行安装/更新 → 失败瞬间 Ctrl+E

  2. 过滤:

    Result       is ACCESS DENIED     → Include
    Process Name is <installer.exe/msiexec.exe/yourapp.exe> → Include
    
  3. Path

    • 文件:C:\Program FilesC:\Windows\System32 需要管理员;
    • 注册表:HKLM\SOFTWARE\...(系统级)通常需提升;
    • Detail 里的 Desired Access 显示需要的权限(SetValue/WriteDAC/TakeOwnership)。
  4. Stack 查拦截(DLP/加固/EDR/Hook)。

  5. 交叉验证:管理员运行、策略/白名单/EDR 排除、重试。

常见结论与建议:

  • 未提升写系统路径:以管理员重试/改安装目录至用户可写。
  • 被安全软件拦截:走白名单流程。
  • 注册表键权限被策略改写:修 ACL 或在部署前设定相应权限。

六、无人值守采集脚本模板(启动→复现→停止→导出)

思路:加载你预设好的 .PMC 配置(含过滤、高亮、列选择),把 PML 落到磁盘,结束后自动导出 CSV 以便共享分析。

:: 1) 预设
set TRACE_DIR=C:\Trace\Case1
if not exist "%TRACE_DIR%" mkdir "%TRACE_DIR%":: 2) 启动采集(最小化、静默、落盘)
procmon.exe ^/AcceptEula /Quiet /Minimized ^/BackingFile "%TRACE_DIR%\case1.pml" ^/LoadConfig  "%TRACE_DIR%\case1.pmc"echo === 现在去复现问题,结束后按任意键 ===
pause:: 3) 停止采集
procmon.exe /Terminate:: 4) 导出 CSV(按当前过滤导出,可加 /SaveFilter)
procmon.exe ^/OpenLog  "%TRACE_DIR%\case1.pml" ^/SaveAs   "%TRACE_DIR%\case1.csv" ^/SaveFilter

提示:.pmc 建议在 GUI 里调好再 File → Export Configuration 保存;这样命令行即插即用。


七、判读“口令卡”(遇事先看它)

  • 权限ACCESS DENIED(红),看路径 + Desired Access,是否应提升/改 ACL/白名单。
  • 被占用SHARING VIOLATION(紫),锁定先打开者与 ShareMode
  • 路径错误NAME NOT FOUND(橙)是否为错误探测/误配置/缺失依赖。
  • 慢点Duration 排序 + Reparse/Redirect(云盘/虚拟化)+ Load Image(插件)。
  • 谁干的Stack + 符号 = 源头库/驱动/Hook 名字。

八、交付模板(一页说清楚)

  • 问题描述:时间、环境、现象(图)。
  • 采集方法:Procmon 版本、过滤/高亮摘要、是否 Drop/Backing。
  • 关键证据:截图(失败事件 + Detail + Stack),CSV Top N 慢操作表。
  • 根因判定:一句话结论 + 证据编号。
  • 修复建议:操作清单(临时/永久)。
  • 复测结果:修复后同条件追踪对比图/表。

结语

把以上三类场景练成“肌肉记忆”,日常 80% 的桌面/应用疑难就能用 Procmon 快速拆解:

清屏 → 过滤 → 抓取 → 着色 → 排序/栈 → 证据导出
下一篇,我们做一个端到端实战案例(含原始 PML → CSV → 汇报成稿的完整流水线)。

http://www.dtcms.com/a/503921.html

相关文章:

  • 福建省晋江市建设局网站想学python从哪里入手
  • 做网站的语言叫什么多个wordpress
  • 建网站要多少钱 优帮云百度上找不到网站
  • 泰兴做网站的公司搜狐快站建站
  • 手机网站模板下载免费.net 网站模板 下载
  • 设备健康管理大数据平台:工业智能化的核心数据引擎​
  • T247867 05-06-D03-海狸咬树(选做)(L5)
  • JAVA 架构师面试题含答案:JVM+spring+ 分布式 + 并发编程
  • 19.6 《3步攻克语音输入提示工程:智能纠错+多模态融合实战全解》
  • 怎么样自己创建网站古焰传奇
  • DTAS 3D-尺寸公差分析软件-如何提高工作效率?
  • 防火墙的白名单和黑名单
  • C#编写的WebApi接口直接返回byte数组引发的问题
  • 室内设计素材网站推荐品牌设计有哪些
  • 厦门市集美区建设局网站网络营销模式的建议
  • 网站建设哪些是需要外援的问题专业设计vi公司
  • 面向对象OOP
  • FFmpeg 基本API avcodec_alloc_context3函数内部调用流程分析
  • 多传感器信息融合---深度学习
  • 成都市网站建设公司怎么建立公众号写文章
  • 做百度移动端网站排名如何自创软件
  • 2014年数据结构应用题深度解析
  • 如何弄自己的公司网站搜索引擎网站建设公司
  • 【中国太平洋人寿保险-注册/登录安全分析报告】
  • 衡阳市做网站对网站建设的描述
  • 九成自动化批量备份知乎专栏文章
  • 东莞建站模板搭建wordpress摘要调用
  • CSP-J 2021 复赛题
  • [嵌入式系统-155]:新能源汽车内部的通信总线有哪些?
  • 网站的优势是什么意思南昌seo排名公司