PsSuspend(7.23):无损挂起与恢复指定进程------精准"冻住"故障现场
- PsSuspend(7.23):无损挂起与恢复指定进程------精准"冻住"故障现场
-
- 你将收获
- [1)PsSuspend 是什么?什么时候用?](#1)PsSuspend 是什么?什么时候用?)
- 2)命令语法速记(本地/远程、名称/PID、挂起/恢复)
- 3)安全护栏:哪些进程**绝对不要挂**?
- [4)联动取证:挂起 → 抓 Dump → 恢复(标准三步)](#4)联动取证:挂起 → 抓 Dump → 恢复(标准三步))
-
- [Step 1:识别目标](#Step 1:识别目标)
- [Step 2:冻结并抓取](#Step 2:冻结并抓取)
- [Step 3:恢复与回验](#Step 3:恢复与回验)
- 5)一条龙脚本:定位→挂起→抓取→恢复(含日志)
- [6)与 PsList/ProcMon/ProcDump 的组合拳](#6)与 PsList/ProcMon/ProcDump 的组合拳)
- [7)常见问题 → 快修](#7)常见问题 → 快修)
- 8)最佳实践清单
- 9)口袋速查(可复制)
PsSuspend(7.23):无损挂起与恢复指定进程------精准"冻住"故障现场
目标:用 PsSuspend 将目标进程"暂停(Suspend)/恢复(Resume)",在不杀进程、不丢上下文的前提下,止血、取证、排障。
你将收获
- PsSuspend 的工作机理与边界
- 本地/远程挂起与恢复的最小命令清单
- 与 PsList/ProcDump/ProcMon 的联动取证打法
- 防"误挂关键进程"的安全护栏与回滚策略
- 批量脚本模板:定位→挂起→抓转储→恢复→记录
1)PsSuspend 是什么?什么时候用?
PsSuspend 是 Sysinternals PsTools 家族中的"进程冻结 "工具:将指定进程所有线程置为 Suspended ,CPU 占用瞬降为 0,内存页/句柄仍保留,可随时 -r 恢复。
典型场景
- 应急止血:暂时冻结"失控 CPU/IO"的业务进程,先保证主机可用,再排障。
- 精准取证 :冻结现场 → 用 ProcDump 抓全量 Dump(或线程栈) → 分析后再恢复。
- 变更演练:冻结风险子进程,安全验证外部切换/脚本,再恢复。
与
taskkill相比,不终止、不丢状态 ;与"降低优先级"相比,更彻底。
2)命令语法速记(本地/远程、名称/PID、挂起/恢复)
text
pssuspend [\\Computer [-u user [-p passwd]]] <PID | ProcessName> [...]
pssuspend -r [\\Computer [-u user [-p passwd]]] <PID | ProcessName> [...]
常用开关
-r:恢复被挂起的进程-accepteula:首次运行静默接受 EULA-nobanner:隐藏工具横幅(脚本更干净)
例子
bat
:: 本地:按进程名挂起/恢复
pssuspend notepad
pssuspend -r notepad
:: 本地:按 PID
pssuspend 4321
pssuspend -r 4321
:: 远程:用域凭据
pssuspend \\SRV-APP -u CORP\ops -p ****** w3wp
pssuspend -r \\SRV-APP -u CORP\ops -p ****** w3wp
:: 一次操作多个目标(名或 PID 可并列)
pssuspend chrome 7124 8896
pssuspend -r chrome 7124 8896
远程使用需满足 SMB/RPC/权限等前提,参考 7.2/7.3 篇的"远程通路与排错"。
3)安全护栏:哪些进程绝对不要挂?
原则 :系统关键 与登录/桌面会话核心进程不可挂,否则系统卡死或黑屏。
高危清单(示例,不完全)
csrss.exe、wininit.exe、winlogon.exe、services.exe、lsass.exe- 图形会话关键:
dwm.exe、explorer.exe(冻结桌面/外壳,体验极差) - 容器/虚拟化/存储内核代理、数据库主进程(会中断业务)
护栏动作
- 白名单/黑名单:写死禁止对上述进程名操作。
- 提示二次确认:脚本中对"系统目录进程 + 高权限"加确认。
- 先试探再执行 :先挂测试/影子实例,观察效果再作用于生产。
4)联动取证:挂起 → 抓 Dump → 恢复(标准三步)
Step 1:识别目标
bat
:: 远程看高 CPU
pslist \\SRV-APP -d | sort /+30 & rem 或任务管理器/性能采集
Step 2:冻结并抓取
bat
:: 冻结现场(避免线程继续跑偏)
pssuspend \\SRV-APP w3wp
:: 全量转储(含托管/本机代码上下文)
procdump \\SRV-APP -ma w3wp C:\Temp\w3wp_full.dmp
Step 3:恢复与回验
bat
pssuspend -r \\SRV-APP w3wp
psservice \\SRV-APP query W3SVC & rem 服务健康
提示:若要抓线程栈 而非全量内存,
procdump -ma可换成-mp或-ma -e(异常触发),按你的分析目标调整。
5)一条龙脚本:定位→挂起→抓取→恢复(含日志)
bat
@echo off
set HOST=SRV-APP
set PROC=w3wp
set DUMP=\\%HOST%\C$\Temp\w3wp_%DATE:~0,10%_%TIME:~0,2%%TIME:~3,2%.dmp
echo [1/5] 校验进程是否存在...
pslist \\%HOST% %PROC% >nul 2>&1 || (echo [ERR] 进程不存在 & exit /b 1)
echo [2/5] 挂起 %PROC% ...
pssuspend \\%HOST% %PROC% || (echo [ERR] 挂起失败,终止流程 & exit /b 1)
echo [3/5] 抓取 Dump -> %DUMP%
procdump \\%HOST% -accepteula -ma %PROC% %DUMP% || echo [WARN] Dump 抓取失败,请人工补抓
echo [4/5] 恢复 %PROC% ...
pssuspend -r \\%HOST% %PROC% || (echo [WARN] 恢复失败,请立即人工介入)
echo [5/5] 回验在线(ADMIN$)
for /l %%i in (1,1,30) do (
dir \\%HOST%\ADMIN$ >nul 2>&1 && (echo [OK] 在线回验通过 & goto :DONE)
timeout /t 2 >nul
)
echo [WARN] 回验超时
:DONE
echo [DONE] 取证流程结束,Dump: %DUMP%
6)与 PsList/ProcMon/ProcDump 的组合拳
- PsList :挂起前后对比 线程/句柄/内存 快照(
pslist -t/-m) - ProcDump :冻结后稳定抓取 全量/线程/异常触发 Dump
- ProcMon:挂起前快速圈定可疑 IO/注册表操作;现场不允许挂起时,用过滤+背压控量
7)常见问题 → 快修
| 现象/报错 | 可能原因 | 快速修复 |
|---|---|---|
Access is denied. |
权限不足/UAC 限制/安全软件拦截 | 用管理员凭据;放行工具目录;必要时调整远程 UAC(工作组慎用) |
| 挂起后无法恢复 | 目标进程崩溃/已退出 | 先确认进程在;必要时重启相关服务或拉起新实例 |
| 挂起导致业务中断 | 进程为关键组件 | 立即 -r 恢复;按"高危清单"建立黑名单,非业务低峰不操作 |
| 远程主机无响应 | RPC/SMB 被挡/主机离线 | 放行 445/135/Dynamic RPC;先 \\HOST\ADMIN$ 连通性验证 |
| Dump 抓取失败 | 空间不足/权限被拦截 | 预留存储;与 EDR/杀软白名单协同;改本地路径再回传 |
8)最佳实践清单
- 先判定角色 :只冻结"业务子进程/工作进程",不要动系统核心。
- 先备份后操作:提前创建 Dump 目录并预留空间。
- 短时冻结 :冻结时间尽量控制在分钟级,超过阈值要么恢复,要么择机维护。
- 留痕:记录"谁、何时、对哪个进程、为何冻结、Dump 路径、恢复时间"。
- 灰度验证:先在测试/非核心环境演练脚本,再上生产。
9)口袋速查(可复制)
bat
:: 本地冻结/恢复
pssuspend notepad
pssuspend -r notepad
:: 远程冻结/恢复(域凭据)
pssuspend \\SRV-APP -u CORP\ops -p ****** w3wp
pssuspend -r \\SRV-APP -u CORP\ops -p ****** w3wp
:: 冻结后抓 Dump(推荐)
procdump \\SRV-APP -ma w3wp \\SRV-APP\C$\Temp\w3wp.dmp
小结
PsSuspend 是应急与取证的"手术刀":不杀进程、可回滚、可联动 。记住高危黑名单、控制冻结时长、配合 ProcDump/PsList 做证据闭环,你就能在"稳住系统"的同时,把故障现场完整带走。
下一篇(7.24):命令速查------PsTools 全家桶语法与高频脚本片段库(收藏级)。