Sysinternals的Process Monitor是一个很好的诊断工具,当您想弄清楚进程和/或文件的状况时。我在标题为“ link:/ windows-Understanding_Process_Monitor [Understanding Process Monitor]”的技巧中介绍了此工具。在本技巧中,我将向您展示如何在诊断中实际使用其某些功能。

在第一种情况下,假设您正在运行一个进程,但是似乎没有做任何事情。您想知道它是否已挂起,或者实际上是否正在执行您当前无法检测到的操作。

与所有诊断一样,您可以采用多种方法,但是由于本技巧着重于Process Monitor,因此我们将使用其功能来查看发生的情况。

启动进程监视器,查看您是否可以在“进程名称”列下观察进程滚动。如果看不到它,请尝试通过单击双筒望远镜图标(“查找”)并键入进程名称(包括其扩展名,例如,键入“ MyProgram.exe”)进行搜索。如果找到,Process Monitor将停止滚动并突出显示它首先找到进程名称的行。如果不确定.exe名称,则可以使用“包含窗口中的进程”图标(从左数第八个)。通过单击并将图标拖动到运行进程的窗口中,可以使用它。将图标拖动到窗口后,释放鼠标,Process Monitor将转到找到该窗口的进程的行。在这一点上,您可以过滤掉有关该特定过程的所有内容,以便可以观察它的活动,而不会被其他所有事情分心。

筛选是Process Monitor中一个功能强大而简单的概念。可以将过滤器设置为包括条目或排除条目。重要的是要认识到,如果打开了“包含”过滤器,则仅显示与过滤器匹配的条目。另一方面,如果您打开了“排除”过滤器,则将显示除过滤器中的内容以外的所有内容。 “包含”过滤器始终优先于“排除”过滤器。

单击“过滤器”图标(上下金字塔)。请注意,Process Monitor已经为找到的进程自动创建了一个“包含”过滤器,因此您实际上无需执行任何操作,只需在过滤器窗口上单击“取消”,然后在主屏幕中监视进程的活动。 (请参见图1。)

image

图1. Process Monitor Filter窗口。

在第二种情况下,假设您的硬盘驱动器上有一个文件间歇性地表现出奇怪的行为。例如,由于“另一个用户锁定的文件”错误,其修改日期有时会更改或有时会崩溃。您可以使用Process Monitor来监视文件,并查看正在访问哪些文件的进程。

启动过程监视器。由于您上次运行Process Monitor时设置了过滤器,因此它会记住此设置并自动打开“过滤器”窗口。您想以干净的状态开始此会话,因此请单击“重置”按钮以将过滤条件恢复为其默认设置;否则,请单击“确定”。然后单击确定。

假设您要观看的文件名为“ C:\ Temp \ Indexes.dat”。再次,您可以在主屏幕中查看信息,以使文件显示在“路径”列中,但是单击“过滤器”图标并进行“包含”过滤器可能会更容易,以便仅显示相对于该文件的活动。

单击过滤器图标,然后在左上方的下拉列表中选择“路径”;然后在包含单词“ is”的下拉列表右侧的框中键入“ C:\ Temp \ Indexes.dat”(不带引号)。 (请参见图2。)

image

图2.过滤特定文件名。

现在,单击添加和确定按钮以返回主屏幕。

现在,您将能够准确地看到何时访问文件以及正在执行什么过程。

在最后一种情况下,假设您注意到似乎正在进行的大量硬盘活动。您可以使用Process Monitor对此活动进行快照以进行后续分析。

启动流程监视器,然后像在场景二中一样将筛选重置为默认状态。然后,在主屏幕上时,单击“捕获”图标(左第三)。这将导致当前活动的快照并停止滚动。

现在要查看此快照的磁盘活动,请单击“工具” |“工具”。文件摘要菜单项。将显示“文件摘要”对话框,其中包含快照捕获的所有文件活动。 (请参见图3。)

image

图3.按路径的文件摘要。

当前,此摘要按“事件总数”列排序,但是单击列标题将按该特定字段对数据进行排序。单击“按文件夹”选项卡来查看按名称分组的文件也很有趣。 (请参见图4。)

image

图4.按文件夹的文件摘要。

现在,您可以通过单击左侧的加号进行向下钻取,并查看正在访问的所有文件。

本技巧介绍了您可能会遇到的三种情况,可以在其中使用Process Monitor诊断问题。您可能已经注意到,还有许多未解决的图标和菜单项。正如一开始所说的那样,发现Process Monitor可以做什么的最好方法是自己进行试验。

本技巧(13120)适用于Windows 7、8和10。