答案1
conhost.exe
运行时也会启动cmd.exe
。检查此 MS 线程了解更多信息。
答案2
当你运行 时cmd.exe
,第二个名为 的进程conhost.exe
始终会启动。这就是你看到另外 2 个进程的原因。这Windows 7 中添加了 conhost.exe,以提高安全性:
在以前版本的 Windows 中,所有代表在桌面上运行的非 GUI 应用程序(控制台应用程序)的 GUI 活动均由系统进程 CSRSS.exe 代理。当控制台应用程序想要接收字符时,它会调用 Kernel32.dll 中实现的一小组“控制台 API”之一,然后 Kernel32 向 CSRSS 发出 LPC 调用。CSRSS 检查与控制台窗口关联的输入队列,并通过 Kernel32 将适当的字符模式输入返回给控制台应用程序。
问题在于,即使应用程序在普通用户帐户的上下文中运行,CSRSS.EXE 也会在本地系统帐户下运行。因此,在某些情况下,恶意软件可能会利用应用程序中的漏洞,在 CSRSS.EXE 中权限更高的本地系统帐户下执行代码。这种漏洞被称为“破坏性攻击”。
Windows 7 和 Windows Server 2008 R2 通过在新的进程 ConHost.exe 上下文中运行控制台消息传递代码解决了此问题。ConHost(控制台主机)与其关联的控制台应用程序在相同的安全上下文中运行。请求不会向 CSRSS 发出 LPC 请求进行消息处理,而是转到 ConHost。因此,任何利用应用程序的消息处理代码的尝试都不会导致权限自动提升。
所以请放心,您的 Windows 一切正常。