Skip to content

Process Explorer 快速入门

Posted on:April 1, 2023 at 10:18 AM

Process Explorer 提供了比 Windows 内建的任务管理器更丰富的信息,可以帮助管理员或软件开发者深入理解 Windows 以诊断并解决系统问题。对 Windows 内核、Windows 原生应用开发、Windows 驱动程序开发理解和掌握的越多,也能就能从 Process Explorer 中得到的越多。如果你像我一样也没接触过以上领域,也不用太担心,可以使用搜索引擎查询你在 Process Explorer 中看到的名词,一般对其有一个最基本的理解即可。

Process Explorer 可以单独下载使用,或者下载包含它的 Sysinternals 套件。下载地址是 https://learn.microsoft.com/zh-cn/sysinternals/downloads/ 。下载并解压缩后找到 procexp.exe 直接运行即可,如果你的 Windows 是 64 位的版本,procexp.exe 将使用 procexp64.exe 创建一个子进程(你想的没错,你可以直接运行 procexp64.exe):
从 procexp.exe 引导至 procexp64.exe

标题栏

标题栏我用红色标记的 [LIUSHUAI\LiuShuai] 是运行 Process Explorer 的用户名,如果存在用紫色标记的 (Administrator) ,那么表示用户 [LIUSHUAI\LiuShuai] 使用了管理员权利启动了 Process Explorer 。使用管理员权利启动 Process Explorer 可以获得更丰富的信息。如果想由普通用户权利转换为管理员权利,请打开【File】菜单,并选择【Show Details for All Processes】,在打开的用户帐户控制对话框中选择【是】将普通用户权利提升为管理权利,此时就可以在标题栏上看到 (Administrator) 字样了。 标题栏

工具栏与进程列表

工具栏

【Save】

用来保存当前显示在进程列表的信息。如果进程列表使用了工具栏最右侧的【Filter by name】文本框进行了过滤,那么保存的就是过滤后的进程列表中的信息。

【Refresh Now】

默认情况下 Process Explorer 提供的信息每间隔 1 秒刷新一次以反映当前现在的系统状况。但偶尔可能也会希望时间暂停以充分的检查了解特定时刻的系统状况,就像类似警察封锁犯罪现场所做的那样。当焦点在 Process Explorer 窗口时按【空格】键可以暂停 Process Explorer 持续刷新信息,并且当在需要更新信息时手动按键盘上的【F5】或点击工具栏中的【Refresh Now】来刷新信息。您也可以打开【View】菜单,指向【Update Speed】,然后选择一个合适的刷新间隔时间。

【Show/Hide Lower Pane】

显示或隐藏底部面板。底部面板包含进程使用的句柄、DLL 以及线程的详细信息。

【System Information】

打开【System Information】对话框。【System Information】对话框不仅有实时的 CPU 使用量、内存使用量、I/O 数据量等信息,还有大量更深入的信息,比如进程数量、线程数量、句柄(用于引用各类 Windows 内核对象)数量、逻辑处理器数量、分页详情等等。

【Process Tree】

进程列表的【Process】列有三种模式,分别是进程树、字典序升序、字典序降序。单击【Process】列标头可以在这三种模式之间切换。单击工具栏的此按钮可以方便快捷的直接切换到进程树模式。

【Process Properties】

Process Explorer 提供了相当丰富的与进程相关的信息,而进程列表空间相当有限,这些信息不可能全都显示在进程列表中,我们可以选择一个进程后点击此按钮可以打开【Process Properties】对话框来查看进程更多的信息,这个对话框中的信息包含了进程列表中显示的信息。我通常双击进程列表中的某个进程来打开【Process Properties】对话框。

【Terminate Process】

杀死在进程列表中选中的高亮显示的进程。有些进程可能无法杀死,这需要具体情况具体分析。

【Find Handle or DLL】

点击打开 Process Explorer Search 对话框。Process Explorer Search 对话框可以按名称搜索 Handle 或 DLL 。单击搜索结果中的一行即可在下方的窗格中定位自己并在上方的进程列表中选中相应的进程。

【Find Window’s Process】

拖动此按钮时 Process Explorer 隐藏,将其放在某个窗口上释放后会自动返回 Process Explorer 窗口并在进程列表中高亮显示窗口相对应的进程记录。

【Filter by name】文本框

按进程列表的【Process】列对进程列表进行过滤,搜索结果与大小写无关。

7 个系统度量图表

使用普通用户权力显示 5 个图表,如果是管理权力则显示 7 个图表。分别是 CPU 用量(CPU Usage)、提交量(System Commit,虚拟内存)、物理内存(Physical Memory)、输入输出增量(I/O,自上次以来增加了多少)、GPU 用量等,管理权力下增加了输入输出增量分别计算的网络输入输出和磁盘输入输出这两项。

进程列表

进程列表是 Process Explorer 窗口最主要的部分,进程列表的信息默认情况下每 1 秒刷新一次以反映当前系统最新状态。绝大部分情况下进程列表中的一条记录代表一项进程相关的一系列信息。

行的颜色

默认情况下,大多数进程列表都有一个颜色,这些颜色代表进程的类型或状态。比如浅蓝色代表当前 Windows 用户运行的进程,粉红色表示 Windows 服务进程,红色代表退出的进程等等。可以通过单击【Options】菜单的【Config Colors…】项打开【Color Selection】对话框进行设置。

列的颜色

有几个比较重要的列有自己特定的颜色,它们是【CPU】、【GPU】、【Private Bytes】、【Working Set】。当某个进程的某类资源的使用量比较大时,该进程相应的单元格的颜色会更深。

【Process】列

当焦点在 Process Explorer 窗口时,指向【Process】列的某个单元格时会显示额外的相关信息。比如启动进程的命令行、可执行映像文件路径、所包含的 Windows 服务等,视具体情况,显示的项也有所不同。单击【Process】列的标题可以在升序、降序、进程树三种显示模式之间进行切换。

【CPU】列

显示占用了多少 CPU 时间的百分比。如果显示的是“< 0.01”,则表明该进程占用的 CPU 时间不足 0.01% 。

【Private Bytes】列

Private Bytes 是进程实际分配的字节数,其中包括使用的内存页。通常是已提交内存而不是实际使用的物理内存。

【Working Set】列

进程实际使用的物理内存。

【PID】

Process ID 的简称,进程的唯一标识符。PID 在进程生命周期内是不变的,但是进程终止后相同的 PID 可能会分配给完全不同的进程。

进程列表记录右键菜单

右键单击某条进程记录,即可打开右键菜单:

【Set Affinity…】可以设置该进程关联的处理器(或逻辑处理器),当应用程序不能在多处理器架构正常工作时,或者你想限制进程使用的 CPU 资源,或者想减少 CPU 选择和切换造成的性能损耗,提高应用性能时等情况下使用。如果你不知道自己在做什么,不建议随意改动。 【Set Priority…】进程优先级,包括:

同样,如果你不知道自己在做什么,请不要改动。

【Kill Process】顾名思意,杀死选择的进程。不要轻易这么做,除非你知道自己在做什么。 【Kill Process Tree】杀死选择的进程及它的所有后代进程。不要轻易这么做,除非你知道自己在做什么。
【Restart】重新启动进程。并不总是能成功,如果你不知道自已在干什么,不建议使用它。 【Suspend】挂起进程,以进行故障排除或让其让出系统资源 CPU、磁盘、网络让其它进程运行。 【Create Dump】创建转储文件。转储文件可以记录进程详细信息,以便稍后进行研究并诊断解决问题。
【Check VirusTotal.com】将可执行进程镜像文件的哈希值提交至 virtustotal.com 查询此镜像文件是否是恶意软件。在执行完成后会增加一个列【VirusTotal】,此列单元格的值包含两个数字,用正斜杠分开,前面的数字是认定此镜像为恶意软件的安全供应商的数量,后面的数字指检测此镜像文件的安全供应商的总数。
【Properties】打开此进程的【Properties】对话框。【Properties】对话框几乎包含了 Process Explorer 可以提供的有关进程的所有细节信息。 【Search Online】使用默认的浏览器和搜索引擎在浏览器中搜索 Process 列显示的名称的相关信息。此项用以了解不太熟悉的进程。

底部面板

单击工具栏的【Show/Hide Lower Pane】,可以打开或关闭底部面板。

Handles 选项卡

显示进程使用的各种由 Windows 负责管理的对象。双击某一条列表记录即可打开【Properties】以查看详情。右键单击 Handles 列表的表头选择【Select Columns】可以选择要显示的列。

DLLs 选项卡

显示进程加载的 DLL 。可以双击打开【Properties】对话框查看详情,也可以【Check VirtusTotal.com】或【Search Online】。右键单击 DLLs 列表的表头选择【Select Columns】可以选择要显示的列。

Threads 选择卡

显示进程创建的所有线程。可以在这里选择线程使用右键菜单终止进程,可以挂起线程,查看线程对应的 Module(可执行文件或 DLL),查看线程的 Stack(调用栈)等等。

关于搜索引擎的使用和参考书籍

我对 Process Explorer 中的大量概念都很陌生。比如,我如果在进程的【Properties】对话框中看到 Stack Protection ,那么我会在 Bing 英文版中搜索 “Windows Stack Protection”。希望这也能对你有启发。

网址 https://learn.microsoft.com/zh-cn/sysinternals/ 也有大量的学习资源,学习这些内容会对你更好的运用 Process Explorer 很大的帮助。