Process Monitor 帮助文档【介绍】Process Monitor(进程监视器)是一个Windows下的高级监视工具,可以实时显示文件系统、注册表和进程/线程的活动。
它将Sysinternals以前的两个实用程序Filemon(文件监视器)和Regmon(注册表监视器)结合在一起,并且添加了大量的改进功能,包括丰富的非破坏性的过滤器,全面的事件属性——如会话ID和用户名,可靠的进程信息,对每个操作带有集成的调试符号支持的完整线程堆栈,同步记录日志文件等等。
Process Monitor独特的强大功能将使它成为你在系统故障排除和恶意软件查杀中使用的核心实用程序。
Process Monitor可以在Windows 2000 SP4 with Update Rollup 1、Windows XP SP2、Windows Server 2003 SP1、Windows Vista,以及64位版本的Windows XP、Windows Server 2003 SP1和Windows Vista等系统上运行。
(译者注:Process Monitor不支持Windows 98、Windows NT等以前的系统,不过可以使用Filemon和Regmon来实现它的部分功能。
)【在Filemon和Regmon基础上的改进】Process Monitor的用户界面和选项与Filemon和Regmon很相似,但它是从头全部重写的,并且包括许多重大改进,例如:(此处引用自wbpluto的汉化版说明)• 监视进程和线程的启动和退出,包括退出状态代码• 监视映像(DLL 和内核模式驱动程序) 加载• 捕获更多输入输出参数操作• 非破坏性的过滤器允许你自行定义而不会丢失任何捕获的数据• 捕获每一个线程操作的堆栈,使得可以在许多情况下识别一个操作的根源• 可靠捕获进程详细信息,包括映像路径、命令行、完整性、用户和会话ID等等• 完全可以自定义任何事件的属性列• 过滤器可以设置为任何数据条件,包括未在当前视图中显示的• 高级的日志机制,可记录上千万的事件,数GB的日志数据• 进程树工具显示所有进程的关系• 原生的日志格式,可将所有数据信息保存,让另一个Process Monitor 实例加载• 进程悬停提示,可方便的查看进程信息• 详细的悬停提示信息让你方便的查看列中不能完整显示的信息• 搜索可取消• 系统引导时记录所有操作要熟悉Process Monitor的功能,最好的方法是通读帮助文件,然后在一个实际运行的系统中尝试使用一下每一个菜单和选项。
【使用Process Monitor】运行Process Monitor需要本地管理员组成员的权限。
当你启动Process Monitor后,它会立刻开始监视三类操作:文件系统、注册表和进程。
• 文件系统Process Monitor显示Windows文件系统中的所有文件系统活动,包括本地存储器和远程文件系统。
Process Monitor能够自动检测到新添加的文件系统设备并且对它们进行监视。
所有的文件系统路径相对于执行文件系统操作的用户会话来显示。
例如,如果用户A将一个共享路径映射为驱动器盘符Z:,那么任何对此共享路径的访问在Process Monitor中都会显示为相对于Z:盘的路径。
在Process Monitor的工具栏上取消“显示文件系统活动”按钮的选择,就可以从视图中移除文件系统操作的记录,按下这个按钮又会将文件系统操作添加回视图。
• 注册表Process Monitor记录所有注册表操作,并使用习惯的缩写形式来显示注册表根键(例如将HKEY_LOCAL_MACHINE显示为HKLM)。
在Process Monitor的工具栏上取消“显示注册表活动”按钮的选择,就可以从视图中移除注册表操作的记录,按下这个按钮又会将注册表操作添加回视图。
• 进程在进程/线程监视子系统中,Process Monitor跟踪所有进程和线程的创建和退出操作,以及DLL(动态链接库)和设备驱动程序的加载操作。
在Process Monitor的工具栏上取消“显示进程和线程活动”按钮的选择,就可以从视图中移除进程和线程操作的记录,按下这个按钮又会将进程和线程操作添加回视图。
• 剖析事件这种事件类型可以在“选项”菜单中启用。
当它被启用时,Process Monitor扫描系统中所有的活动线程,并为每个线程创建一个剖析事件,记录它耗费的核心和用户CPU时间,以及该线程自上次剖析事件以来执行了多少次上下文转换。
注意:在剖析中不包括System进程。
有一些基本选项控制着Process Monitor的基本操作:捕获:使用“文件”菜单中的“捕获事件”菜单项,工具栏上的“捕获”按钮,以及快捷键Ctrl+E 来切换Process Monitor的捕获行为。
自动滚动:选择“编辑”菜单中的“自动滚动”项,工具栏上的“自动滚动”按钮,以及快捷键Ctrl+A来切换Process Monitor的自动滚动行为,以保证最近的操作在视图中是可见的。
清除:选择“编辑”菜单中的“清除显示”菜单项,工具栏上的“清除”按钮,以及快捷键Ctrl+X,可以清除视图中显示的所有内容。
【选择列】你可以拖动列来重新排列它们的顺序。
选择“选项”菜单中的“选择列”菜单项,打开“列选择”对话框,你可以在这里定制要显示的列。
可供选择的列包括:应用程序详细信息• 进程名发生事件的进程名称• 映像路径在进程中运行的映像文件的完整路径• 命令行启动进程时所使用的命令行• 公司名称在进程映像文件中嵌入的公司名称版本字符串文本,该文本由应用程序开发者所选择定义• 描述在进程映像文件中嵌入的产品描述字符串文本,该文本由应用程序开发者所选择定义• 版本在进程映像文件中嵌入的产品版本号,该信息由应用程序开发者所选择定义• 体系架构应用程序的体系架构(如32位、64位等)事件详细信息• 序号 Process Monitor分配给一个特定事件的唯一数字编号• 事件类事件的类型(文件、注册表、进程)• 操作特定的事件操作(例如读取文件、注册表查询值等)• 日期和时间操作发生的日期和时间• 时间仅包括操作发生的时间• 类别操作的类别(例如读取、读取元数据等)• 路径事件引用资源的路径• 详细信息事件的额外具体信息• 结果操作完成后返回的状态代码• 相对时间相对于Process Monitor启动时间或上次清除视图时间的操作时间• 持续时间已完成操作的持续时间进程管理• 用户名执行操作的进程运行时所使用的用户帐号的名称• 会话ID执行操作的进程运行时所属的Windows会话• 认证ID执行操作的进程运行时所属的登录会话• 进程ID执行操作的进程ID(PID)• 线程ID执行操作的线程ID(TID)• 父ID执行操作的进程的父进程ID• 完整性执行操作的进程运行中的完整性(仅适用于Windows Vista)• 虚拟化执行操作的进程的虚拟化状态(仅适用于Windows Vista)【事件属性】你可以通过在事件上双击鼠标来查看某个特定事件的属性,或者选择“事件”菜单下的“属性”菜单项,或者当用右键单击某个事件时,在上下文菜单中选择“属性”。
“事件属性”对话框由“事件”、“进程”和“堆栈”三页组成,你可以使用对话框下方的箭头按钮移动到下一个或上一个显示的或高亮的事件。
事件“事件”页显示某个事件的详细信息,包括它的序号、线程、事件类型、操作、结果、时间戳,如果可用的话,还包括资源路径。
只有文件系统和注册表两类事件定义了资源路径。
“事件”页的下半部分列出了由事件操作所决定的详细信息。
这些详细信息与事件在主窗口的详细信息列中所显示的内容相同,但是每条详细信息都显示为单独的一行。
进程事件的“进程”页显示关于产生事件的进程的信息,还包括与进程的映像文件相关的数据,例如路径和版本字符串。
“进程”页显示进程的运行属性,如进程ID、运行进程的用户帐号,如果事件发生在64位的Windows系统中,还可以显示该进程是32位还是64位的。
如果进程在Windows Vista系统上运行,Process Monitor可以显示进程的完整性和是否被虚拟化。
“进程”页的底部显示了当进程中的事件发生时,由该进程加载的映像文件列表和加载它们的内存地址。
双击列表中的映像文件,可以查看关于该映像文件的更多信息,包括它的版本信息等。
堆栈“堆栈”页显示当事件被记录时该线程的堆栈。
堆栈在判定事件发生的原因和导致事件发生的组件时很有用。
堆栈的内核模式帧在左侧以字母K标记,用户模式帧(仅在32位系统上有效)以字母U标记。
如果Process Monitor能够找到在跟踪中引用的映像文件所使用的调试符号,它会尝试把内存地址解析为它们所属的函数名。
如果符号必须从网络上获取,例如使用微软符号服务器,符号解析会花费一些时间。
使用“选项”菜单下的“配置符号”对话框,可以对符号进行设置。
如果你在“配置符号”对话框中指定了一个源文件的路径,当行号符号信息可用并且在你指定的路径下存在源文件时,“堆栈”对话框中的“来源”按钮将对该帧可用。
点击“来源”按钮会打开一个文本查看器,高亮显示被引用的源代码行。
要查看堆栈跟踪记录中关于映像文件的更多信息,可以双击某个帧,或者选择该帧后点击堆栈跟踪区下方的“属性”按钮。
选择“事件”菜单下的“堆栈”菜单项,可以打开事件属性对话框并直接显示“堆栈”页。
【过滤和高亮显示】Process Monitor提供了几种不同的方法来配置过滤器和高亮显示。
包括和排除过滤器你可以在过滤器中指定事件属性,Process Monitor将只显示或排除与属性值相匹配的事件。
所有的过滤器都是非破坏性的,意思是说它们只影响事件在Process Monitor中的显示,而不影响事件的基础数据。
当选择了一个事件之后,“事件”菜单下的“包括”和“排除”子菜单可以让你通过简单地添加一个事件属性来设置“包括”和“排除”过滤器。
例如,想要只显示由某个特定名称的进程执行的事件,就选择“包括”子菜单下的“进程名”。
你还可以选择多个事件,同时为这些事件中包含的所有唯一值配置属性过滤器。
Process Monitor把与某个特定属性类型相关的所有过滤器当作“或(OR)”的关系,把不同属性类型的过滤器当作“与(AND)”的关系。
例如,如果你为Notepad.exe和Cmd.exe指定了“包括—进程名”过滤器,并为C:\Windows指定了“包括—路径”过滤器,Process Monitor将只显示来源于Notepad.exe或Cmd.exe,并且指定了C:\Windows目录的事件。
在“过滤器”对话框中可以使用更复杂的过滤选项,你可以选择“过滤器”菜单下的“过滤器”菜单项,或者点击工具栏上的“过滤器”按钮。