欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


按F1才能启动的几种原因
常见玩游戏电脑出现故障问题解答
.csh是什么文件?
Mac如何禁用更改文件名后缀提示
乱码形成原因及去除方法大全
WPS表格2013也能进行聊天!
2个巧妙隐藏需要保密文件的方法
系统复制文字粘贴变乱码解决方法
wps演示中表格的插入方法
wps演示配色方案设置方法
Svchost.exe进程知识全解
【 来源:网络 】【 点击:3 】 【 发布时间:2017_03_03 08:59:59 】

  很多朋友对Svchost.exe进程都不太了解,有时在任务管理器中一旦看到有多个该进程(图1中有6个),就以为自己的电脑中了病毒或木马,其实并非如此!正常情况下,windows中可以有多个Svchost.exe进程同时运行,例如windows 2000至少有2个Svchost进程,Windows XP中有4个以上,Windows 2003中则有更多,所以当你看到多个Svchost进程时,未必就是病毒!

  Svchost.exe进程是干什么的?

  Svchost.exe文件存在于“%system root%system32”(例如C:Windowssystem32)目录下,它是Windows NT核心的重要进程(Windows 9X没有该进程),专门为系统启动各种服务的。例如Svchost.exe调用rpCss.dll文件,就会启动rpcss服务(remote procedure call)。

  Svchost.exe实际上是一个服务宿主,它本身并不能给用户提供任何服务,但是可以用来运行动态链接库DLL文件,从而启动对应的服务。Svchost.exe进程可以同时启动多个服务。

  Svchost是如何启动系统服务的?

  由于系统服务都是以动态链接库(DLL)形式实现的,它们把可执行程序指向Svchost,因此Svchost只要调用某个动态链接库,即可启动对应的服务。那么Svchost启动某服务时,又是如何知道应该调用哪个动态链接库?这是由于系统服务在注册表中都设置了相关参数,因此Svchost通过读取某服务在注册表中的信息,即可知道应该调用哪个动态链接库,从而启动该服务。

  下面我们以Svchost启动helpsvc(Help and Support)服务为例,介绍其启动服务的方法。在Windows XP中点击“开始” “运行”,输入“services.msc”命令,弹出服务对话框,然后双击打开“Help and Support”服务属性对话框,可以看到helpsvc服务的可执行文件的路径为“C:WINDOWSSystem32svchost.exe -k netsvcs” (如图2),说明helpsvc服务是依靠SVCHOST调用“netsvcs”参数来实现的,而参数的内容则是存放在系统注册表中的。

  在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceshelpsvc]项,找到类型为“REG_EXPAND_SZ”的键“magePath”,其键值为“%SystemRoot%System32svchost.exe -k netsvcs”(这就是在服务窗口中看到的服务启动命令),另外在“Parameters”子项中有个名为“ServiceDll”的键,其值为“%WINDIR%PCHealthHelpCtrBinariespchsvc.dll”,其中“pchsvc.dll”就是helpsvc服务要使用的动态链接库文件。这样SVCHOST进程通过读取“helpsvc”服务注册表信息,就能启动该服务了。

  Svchost到底启动了哪些服务?

  如果你想了解每个SVCHOST进程当前到底提供了哪些系统服务,可以在命令提示符下输入命令来查看。例如在Windows XP中,打开“命令提示符”,键入tasklist /svc命令查看;在Windows 2000中,则输入“Tlist -S”命令来查看。

  如果你在Windows XP中,想得到所有进程的详细信息,可以打开“命令提示符”,键入  tasklist /svc>abc.txt 命令,于是在当前目录中,将会生成一个abc.txt文件,其内容就是当前正在运行的所有进程情况,例如进程名、PID号、该进程启动了哪些服务。

  如何发现Svchost进程有问题?

  由于Svchost进程可以启动各种服务,因此病毒、木马也经常伪装成系统的DLL文件,使Svchost调用它,从而进入内存中运行、感染和控制电脑。

  建议你使用“Windows优化大师”进程管理器(可以到《个人电脑》的下载频道http://download.pcpro.com.cn的“系统工具”中去下载),查看所有Svchost进程的执行文件路径(如图3),正常的Svchost文件应该存在于“c:Windowssystem32”目录下,如果你发现其执行路径在其他目录下,就有可能染上了病毒或木马了,应该马上进行检测和处理。

  Svchost进程杀不掉怎么办?

  如果有些Svchost进程,你在任务管理器中无法关闭之,可以使用ntsd命令来杀掉它,方法如下:

  首先需要了解欲杀的Svchost进程,其PID是多少?在Windows XP下,按Ctrl+Alt+Del打开任务管理器,点击“进程选项卡” “查看” “选择列”,在弹出的窗口中(图4),勾选“PID(进程标识符)”,然后回到任务管理器中,即可看见PID了(例如要杀的Svchost进程,其PID是844)。

  接下来关闭该进程。点击“开始” “程序” “附件” “命令提示符”,在命令提示符下,输入命令ntsd -c q -p 844即可杀掉Svchost进程(PID是844)。

  小提示:除了System、SMSS.EXE和CSRSS.EXE这三个进程,ntsd命令可以杀掉任何一个系统进程。从Windows 2000开始,微软就提供了ntsd工具,该命令执行后,可让你获得系统的debug权,因此能够用来关闭大部分的系统进程,如果你遇到无法关闭的进程,就可以使用该命令,其杀进程的命令格式为:ntsd -c q –p XXX

  以上XXX为欲杀进程的PID;

  ntsd –p XXX 表示在调试器中打开某进程(PID为XXX);

  而-c q参数则表示退出调试器。由于调试器关闭之后,它打开的进程会随调试器一起退出,因此ntsd命令能够关闭进程。

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站