什么是conhost.exe?它为什么要运行?

毫无疑问,您正在阅读本文,因为您在任务管理器中偶然发现了控制台窗口主机(conhost.exe)进程,并想知道它是什么。我们已经为你找到了答案。

相关:此进程是什么?为什么要在我的PC上运行?

这篇文章是我们正在进行的系列文章的一部分,介绍了任务管理器中的各种进程,如jsvchost.exe、ddwm.exe、ctfmon.exe、rmDNSResponder.exe、rundll32.exe、adobeUpdater.exe和许多其他服务。难道你不知道这些服务是什么吗?最好开始读吧!

那么控制台窗口主机进程是什么呢?

理解控制台窗口主机进程需要了解一些历史记录。在Windows XP时代,命令提示符由名为ClientServer Runtime System Service(CSRSS)的进程处理。顾名思义,CSRSS是一个系统级服务。这就产生了几个问题。首先,CSRSS中的崩溃可能会导致整个系统崩溃,这不仅暴露了可靠性问题,还暴露了可能的安全漏洞。第二个问题是CSRSS不能主题化,因为开发人员不想冒险让主题代码在系统进程中运行。因此,命令提示符始终具有经典外观,而不是使用新的界面元素。

请注意,在下面的Windows XP屏幕截图中,命令提示符的样式与记事本之类的应用程序不同。

相关:什么是桌面窗口管理器(dwm.exe)?为什么要运行它?

Windows Vista引入了桌面窗口管理器,这项服务可以将窗口的复合视图“绘制”到桌面上,而不是让每个单独的应用程序自己处理。命令提示符从中获得了一些肤浅的主题(就像其他窗口中的玻璃框架一样),但这是以将文件、文本等拖放到命令提示符窗口中为代价的。

尽管如此,主题也仅限于此。如果你看一看Windows Vista中的控制台,它看起来就像使用了其他所有东西一样的主题,但你会注意到滚动条仍然使用旧的风格。这是因为桌面窗口管理器负责绘制标题栏和框架,但里面仍然有一个老式的CSRSS窗口。

进入Windows 7和控制台窗口主机进程。顾名思义,它是控制台窗口的主机进程。该进程在某种程度上位于CSRSS和命令提示符(cmd.exe)之间,使Windows可以解决前面的两个问题-滚动条等界面元素可以正确绘制,您可以再次拖放到命令提示符中。这就是Windows8和Windows10中仍然使用的方法,允许自Windows7以来出现的所有新的界面元素和样式。

即使任务管理器将控制台窗口主机显示为单独的实体,它仍然与CSRSS紧密关联。如果在Process Explorer中签出conhost.exe进程,则可以看到它实际上在csrss.ese进程下运行。

最后,控制台窗口主机有点像一个外壳,它保持了运行像CSRSS这样的系统级服务的能力,同时仍然安全可靠地授予集成现代界面元素的能力。

为什么有多个流程实例在运行?

您将经常看到在任务管理器中运行的控制台窗口主机进程的多个实例。正在运行的每个命令提示符实例都将派生其自己的控制台窗口主机进程。此外,其他使用命令行的应用程序将生成它们自己的控制台Windows主机进程-即使您看不到它们的活动窗口。Plex Media Server应用程序就是一个很好的例子,它作为后台应用程序运行,并使用命令行使其自身可供网络上的其他设备使用。

许多后台应用程序都是以这种方式工作的,因此在任何给定时间看到控制台窗口主机进程的多个实例运行的情况并不少见。这是正常行为。在大多数情况下,除非进程处于活动状态,否则每个进程应该占用非常少的内存(通常低于10MB),并且几乎不占用CPU。

也就是说,如果你注意到Console Window for Host的特定实例-或相关服务-正在造成麻烦,比如CPU或RAM使用率持续过高,你可以检查涉及的特定应用程序。这至少可以让您有一个从哪里开始故障排除的想法。不幸的是,任务管理器本身并没有提供有关这方面的好信息。好消息是,作为其Sysinterals阵容的一部分,微软提供了一个处理进程的优秀高级工具。只需下载Process Explorer并运行它-它是一个便携应用程序,所以不需要安装它。Process Explorer提供各种高级功能,我们强烈建议您阅读了解Process Explorer指南以了解更多信息。

相关:什么是“便携”应用程序,为什么它很重要?

在Process Explorer中跟踪这些进程的最简单方法是首先按Ctrl+F开始搜索。搜索“conhost”,然后点击搜索结果。在执行此操作时,您将看到主窗口发生更改,向您显示与控制台窗口主机的特定实例相关联的应用程序(或服务)。

如果CPU或RAM使用率表明这是给您带来麻烦的实例,那么至少您已经将其缩小到特定的应用程序。

这个过程会不会是一种病毒呢?

该进程本身是一个正式的Windows组件。虽然病毒有可能用自己的可执行文件取代了真正的控制台Window Host,但可能性不大。如果您想确认,可以查看进程的底层文件位置。在任务管理器中,右键单击任何服务主机进程,然后选择“打开文件位置”选项。

如果该文件存储在您的Windows\System32文件夹中,那么您可以相当确定您正在处理的不是病毒。

事实上,有一个名为Conhost Miner的特洛伊木马程序伪装成控制台窗口主机进程。在Task Manager中,它看起来就像真正的进程,但稍微深入一下就会发现,它实际上存储在%userprofile%\AppData\Roaming\Microsoft文件夹中,而不是Windows\System32文件夹中。特洛伊木马程序实际上是用来劫持你的PC挖掘比特币的,所以如果你的系统上安装了它,你会注意到的另一个行为是内存使用率比你可能预期的要高得多,CPU使用率保持在非常高的水平(通常在80%以上)。

相关:Windows 10最好的杀毒软件是什么?(Windows Defender是否足够好?)

当然,使用一个好的病毒扫描程序是预防(和删除)像Conhost Miner这样的恶意软件的最好方法,而且这是你无论如何都应该做的事情。安全总比后悔好!

相关文章