Files
Knowledge/1 使用/Windows/Microsoft.Sysinternals.Suite 用法.md
T

139 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 什么是 Sysinternals Suite?
Sysinternals Suite 是微软官方推出的一套免费 Windows 高级诊断与故障排查工具集。它由 **70 多个**轻量级、免安装的工具组成,专为系统管理员和高级用户设计,提供对 Windows 操作系统内部底层行为的深度洞察。
它的核心价值在于能精准回答两大问题:**"是谁在干坏事?"** 和 **"到底发生了什么?"**。如果说任务管理器是"听诊器",那 Sysinternals 就是为 Windows 做的"CT",能彻底拆解进程、句柄、内存、注册表等底层运作。
---
## 核心工具列表
Sysinternals Suite 的工具可按功能划分为五大类。下表列出其中最具代表性的核心工具。
### 🔍 进程与系统监控
| 工具 | 说明 |
| :--- | :--- |
| **Process Explorer** (`procexp.exe`) | 增强型任务管理器,以树状结构显示进程间关系、权限、句柄和 DLL 详情。 |
| **Process Monitor** (`procmon.exe`) | 实时监控文件系统、注册表和进程线程活动,是排障和抓毒的必备利器。 |
| **TCPView** (`tcpview.exe`) | 图形化监控网络连接和端口占用,替代命令行 `netstat`。 |
| **RAMMap** (`rammap.exe`) | 深度分析物理内存使用分布,用于排查内存占用过高和内存泄漏。 |
### 🚀 启动与权限管理
| 工具 | 说明 |
| :--- | :--- |
| **Autoruns** (`autoruns.exe`) | 全面管理开机自启动项,远超自带 `msconfig`。 |
| **PsExec** (`psexec.exe`) | 在远程系统上执行进程,常用于自动化运维。 |
| **AccessChk** (`accesschk.exe`) | 查看文件、注册表、服务等资源的详细访问权限。 |
| **Autologon** (`autologon.exe`) | 配置 Windows 自动登录,跳过密码输入。 |
### 💾 磁盘与文件分析
| 工具 | 说明 |
| :--- | :--- |
| **Disk2vhd** (`disk2vhd.exe`) | 将物理磁盘转换为 Hyper-V 虚拟硬盘(VHD)。 |
| **Disk Usage (DU)** (`du.exe`) | 命令行查看目录磁盘占用大小。 |
| **SDelete** (`sdelete.exe`) | 安全覆盖删除敏感文件,防止数据恢复。 |
| **Handle** (`handle.exe`) | 查找特定文件被哪个进程占用。 |
### 🧠 系统信息与故障排查
| 工具 | 说明 |
| :--- | :--- |
| **BgInfo** (`bginfo.exe`) | 桌面背景展示主机名、IP、内存等关键系统信息。 |
| **DebugView** (`dbgview.exe`) | 捕获应用程序和内核驱动输出的调试信息。 |
| **BlueScreen** (`bluescreen.scr`) | 模拟蓝屏的屏保程序(趣味工具)。 |
| **NotMyFault** (`notmyfault.exe`) | 手动制造系统崩溃,用于测试故障恢复机制。 |
### 🎯 命令行与开发辅助
| 工具 | 说明 |
| :--- | :--- |
| **PsTools** (`pstools.exe`) | 命令行管理套件(含 PsList、PsKill、PsShutdown 等)。 |
| **LiveKd** (`livekd.exe`) | 在运行中的系统上执行内核调试器。 |
| **Strings** (`strings.exe`) | 提取二进制文件中的 ASCII 或 Unicode 字符串。 |
| **ZoomIt** (`zoomit.exe`) | 屏幕缩放和标注工具,专为演示和会议设计。 |
> 完整工具列表及功能请参考微软官网 [Sysinternals Utilities Index](https://learn.microsoft.com/en-us/sysinternals/downloads/)。
---
## 详细使用指南与场景示例
### Process Explorer(进程资源管理器)
**场景**:电脑突然卡顿,怀疑某个进程异常占用 CPU 或内存。
**操作步骤**:
1. 以管理员身份运行 `procexp.exe`。
2. 顶部窗格显示所有活跃进程,可按 CPU 或内存列排序找出占用最高的进程。
3. 双击该进程查看详细信息:
- 查看其打开的句柄(Handle,指进程所引用的系统资源,如打开的文件、注册表键、互斥体、线程等);
- 切换到"Threads"选项卡,查看具体是哪个线程导致占用高。
4. 右键菜单可"Kill Process"直接结束,或"Suspend"临时挂起观察影响。
> 可通过菜单 `Options → Replace Task Manager` 替换系统自带任务管理器,日常更方便调用。
### Autoruns(启动项管理)
**场景**:开机速度极慢,怀疑有病毒或恶意软件开机自启。
**操作步骤**:
1. 运行 `autoruns.exe`。
2. 工具栏勾选 **"Hide Microsoft Entries"**,滤除微软官方条目,仅显示第三方自启项,快速定位可疑程序。
3. 按类别选项卡查看不同自启类型(Logon、Services、Scheduled Tasks 等)。
4. 取消勾选可疑条目即可**禁用**;选中后点击"Delete"可**彻底删除**。
5. 右键选择"Jump to Entry"或"Jump to Image",直接定位到对应的注册表路径或文件位置。
> 禁用前建议通过 `File → Save` 保存当前配置备份,便于误操作时恢复。
### Process Monitor(进程监视器)
**场景**:某个软件安装失败或运行报错,但不清楚失败原因。
**操作步骤**:
1. 管理员运行 `procmon.exe`,启动后立刻开始捕获系统事件。
2. **关闭不需要的应用**,减少无关日志干扰。
3. 短暂复现问题后,停止捕获(`File → Capture Events` 或 `Ctrl+E`)。
4. 使用 **过滤器** 缩小搜索范围,常用的过滤条件包括:
- `Process Name is 某进程.exe then Include`
- `Operation contains File (或 Reg) then Include`
- `Result is ACCESS DENIED (或 NAME NOT FOUND) then Include`
5. 分析结果:重点关注 `Result` 列为 `ACCESS DENIED`、`NAME NOT FOUND`、`BUFFER OVERFLOW` 的红色行,往往是问题根源。
6. 可通过 `File → Save` 导出日志(建议选择 PML 格式)供后续分析或转交技术支持。
### PsTools 套件
**场景**:远程管理多台服务器,执行进程、服务或关机操作。
**常用命令**(均需管理员权限,部分需安装 `PsExec` 服务):
- 远程查看进程列表:`psexec \\192.168.1.100 -u 用户名 -p 密码 tasklist`。
- 远程强制重启:`psshutdown \\192.168.1.100 -r -f -t 0`。
- 结束远程进程:`pskill \\192.168.1.100 1234`(1234 为目标进程的 PID)。
- 列出远程进程信息:`pslist \\192.168.1.100 -d`(显示线程详情)。
> 使用时务必遵守安全规范和授权,避免在未经允许的机器上执行。
### BGInfo(桌面背景信息显示)
**场景**:运维多台服务器时,希望一眼看到主机名、IP 地址、系统版本等关键信息。
**操作步骤**:
1. 运行 `bginfo.exe`,默认显示 IP、计算机名等基本信息。
2. 点击菜单 `File → New` 自定义显示内容,可自由添加:
- 磁盘使用率(`Drive C: Free %`);
- 内存总量(`Total Physical Memory in MB`);
- 当前登录用户(`Logged on User`)。
3. 配置完成后 `File → Save As…` 保存为 `.bgi` 配置文件。
4. `File → Apply` 即可将信息刷新到当前桌面背景。
5. 需要开机自动应用时:将 BGInfo 快捷方式放入 **启动文件夹**(`shell:startup`),并指定配置文件路径:`"C:\Tools\bginfo.exe" "C:\Config\myconfig.bgi" /timer:0`,实现开机自动静默应用。
### 系统异常转储与调试场景
| 场景 | 推荐工具 | 操作关键点 |
| :--- | :--- | :--- |
| 进程崩溃需抓取内存状态 | **ProcDump** (`procdump.exe`) | 监控高 CPU 占用或崩溃:`procdump -c 80 -s 5 -n 3 -ma myapp.exe`(CPU 连续 5 秒超过 80% 时生成完整 dump)。 |
| 系统反复蓝屏但无法复现 | **NotMyFault** (`notmyfault.exe`) | 运行后选择崩溃类型(高 IRQL 故障、缓冲区溢出等),手动触发蓝屏,用于验证 crash dump 配置是否正确。 |
| 分析蓝屏 DUMP 文件 | **LiveKd** (`livekd.exe`) | 无需重启即可用 WinDbg 调试运行中的内核,或离线分析 DUMP:`livekd -y "SRV*C:\Symbols*https://msdl.microsoft.com/download/symbols" -o`。 |