网站搜索

我用三个更好的微软工具替换了任务管理器、启动应用程序和事件查看器


如果您的电脑出现问题,无论是性能缓慢、启动慢还是频繁崩溃,Windows 都提供了一些内置工具来了解问题所在。例如,任务管理器可以告诉您性能缓慢是否由于某个进程占用大量磁盘或内存,而启动应用程序则可以帮助您测量并解决启动慢的问题。另一方面,事件查看器可以帮助您了解系统崩溃的原因和时间。

但是这些工具只是浮于表面。你能看到的是‘什么’,很少能看到‘为什么’。你可以安装第三方工具来填补这个空缺,但我并不需要。微软自己的 Sysinternals 套件已经有了对这三者更为尖锐的替代工具,这些工具由最了解 Windows 内部机制的人开发。Process Explorer、Autoruns 和 Sysmon 早已在我的设置中取代了任务管理器、启动应用和事件查看器。

Process Explorer 显示了任务管理器隐藏的内容

一个带有颜色编码内部的正确进程树






任务管理器对于基础操作来说已经足够。我可以浏览进程标签,按内存或CPU排序,并结束占用资源的进程。它甚至还有一个标签,当你切换到性能视图时,会准确显示你的电脑变慢的原因。但一旦我需要了解一个进程存在的原因或它实际上在做什么,任务管理器就不再有用了。

Process Explorer 是一个 Sysinternals 工具,它通过显示真实的父子进程树来解决这个问题。它同时使用父进程 PID 和启动时间,因此那些父进程已经退出的进程不会被错误地附加到某个重新使用相同 PID 的新进程上。所以,如果你想追踪一个可疑的子进程回到其启动者,你可以轻松地信任你所看到的内容。

进程列表中的每一行都会根据进程类型着色。黄色标记 .NET 进程,粉色标记服务(在专用的 服务 选项卡中显示每个 svchost 内承载的服务),青色标记 UWP 和 WinRT 进程,品红色标记即使是管理员权限也无法查看的受保护进程。下方窗格才是真正超过任务管理器的地方。你可以打开 句柄 视图,找到锁定你无法删除的文件的进程,然后只关闭该句柄而不是结束整个进程。模块 视图显示加载到进程中的每个 DLL,并突出显示重新定位的 DLL,当某些功能感觉异常时非常有用。

Autoruns 会找到 Windows 忽略的每个启动项

启动时加载的完整列表

任务管理器的启动应用选项卡(或在设置 > 应用 > 启动下的选项卡)是排查启动时间问题的一个良好起点。它显示常见的可疑程序,甚至会评估它们的启动影响,这通常是我决定首先禁用哪些启动应用的依据。在那里禁用最影响启动的程序通常可以缩短几秒钟的启动时间。

问题在于启动应用程序列表经过了严格的筛选。Windows 隐藏了大多数实际的自启动位置,可能是为了防止人们破坏他们的系统。服务、计划任务、注册表 Run 键、Active Setup 条目和资源管理器扩展都会在启动时加载,但几乎没有一个会出现在任务管理器中。所以你清理了可见列表,感觉很不错,但你一半的启动负载仍然在后台运行。

Autoruns 消除了这种烟雾屏障,以便更好地了解这些进程。启动 Autorun,登录 标签将显示几个在任务管理器中没有的条目,其中许多是未清理注册表条目的已卸载应用的残留。在我的一台机器上,我发现了一个 Adobe 更新程序、一个试图在每次启动时打开命令提示符的自定义条目,以及一个不断重新出现的 Google Chrome 活动设置条目。然而,这些都没有出现在启动应用标签中。

你可以取消勾选条目而不是删除它们,这样会留下可逆的记录,以防我禁用了你本不该禁用的东西。建议你只处理明显的第三方残留、你不使用的游戏启动器以及已废弃的更新服务。任何由微软签署或与驱动程序相关的,保持原样。这个规则让我避免了麻烦,并且显著加快了我运行过的每台电脑的启动速度。

Sysmon 让事件查看器变得更加有用

Windows 日志中的丰富进程、网络和文件遥测

事件查看器是当某些事情已经出错时你会去的地方。例如,如果你的电脑在夜间崩溃,你可以打开Windows 日志 > 系统,查找崩溃时间附近的关键错误,并尝试将它们与驱动程序或服务匹配。这是有效的,但默认日志比较模糊。这意味着,虽然你可以看到有东西出错了,但很难说具体是什么。

现在,事件查看器的替代方案比其他两个稍微技术性更强,所以提前提示一下。Sysmon(系统监视器)是一个 Sysinternals 工具,它可以挂接到 Windows 的日志记录管道中,记录 Windows 默认不记录的事件。它包括带完整命令行和文件哈希的进程创建、与特定进程相关的网络连接、文件创建和删除事件,以及注册表更改。所有这些都会记录在事件查看器中,路径为 应用程序和服务日志 > Microsoft > Windows > Sysmon,因此你仍然可以使用你已经熟悉的同一个工具。

设置它是一个三步工作。你需要从 Sysinternals 网站下载 Sysmon,获取一个预先构建的配置文件(GitHub 上 SwiftOnSecurity 的模板是一个不错的起点),然后在管理员命令提示符下使用 sysmon64 -accepteula -i sysmonconfig.xml 安装它。就是这样。事件会立即开始流入事件查看器。

对于这个用例,你可以在出现问题后向后追踪。如果一个文件出现在你没有操作的文件夹中,Sysmon 的 事件 ID 11(文件创建)会告诉你是哪个进程写入了它。如果你离开时网络使用量激增,事件 ID 3(网络连接)会准确显示是哪个可执行文件发起了调用以及连接的目标。它不能替代正式的 EDR,而且日志量确实增长很快,但对于单台机器,如果你想知道实际发生了什么,它可以把事件查看器变成可以调查的工具,而不仅仅是盯着它看。

当内置工具和第三方替代品一样好时

我没有卸载任务管理器,因为你根本不能卸载,而且我也不想卸载。要快速结束一个冻结的应用程序,Ctrl + Shift + Esc 仍然比其他任何方法都快。在设置中关闭启动应用程序也可以,只是用来关闭你忘记的启动器。单独使用事件查看器就足以在蓝屏之后进行一次性检查。

当这些工具还不够用时,我会使用 Sysinternals 三件套。当我需要查看一个进程的具体情况时使用 Process Explorer;当我需要彻底清理一台计算机时使用 Autoruns;当我想要能够以后提供线索的日志时使用 Sysmon。这些工具学习起来需要更多的努力,但它们能比仅凭猜测提供更多关于你的电脑出问题原因的见解。

相关文章