您的位置 首页 > 数码极客

svchost如何开启、如何彻底关闭svchost

问题引入

不知道大家最近工作生活中有没有碰到这样的问题:

1、卸载程序,结果没卸载干净。程序的安装目录中还剩下一个DLL文件。想删,结果系统提示说dll文件被某个进程占用了,不让删。

2、安装软件后需要破解或者修改一些配置,通常会有替换配置文件 dll 文件。但是有些情况当安装软件时 其服务默认是自动开启的,此时也就会用到对应的 dll 文件,这个时候在进行更改就会出现异常,windows 会提示该文件已被某个进程占用。

我最近在安装一个服务组件的软件时,因为其内置了一个 sql 数据库程序,当时没留意。再替换配置文件 时才发现 dll 文件被某个进程占用了。重启程序、重启电脑都未能解决,问题就指向了一个原因,那就是该服务是自动开启的,即 windows 开机就自动开启,因而也就会一直占用该 dll 文件。

但是通过 windows 的服务列表界面有很多服务一眼也看不出是哪个服务占用。(当然对启动的服务都很了解的话,就会知道安装一个软件会有哪些服务被启动。)

被这个问题卡住了,搜索了半天资料找到了下面这个神器:Tasklist 。(好吧,承认是windows平台的底层操作不熟,但是解决问题过程中学习成长还是很有成就感的不是,相信你也有这体会。)

关于 dll 文件

dll ( Dynamic Link Library ) 文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。

在 Windows 中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即

DLL 文件,放置于系统中。当我们执行某一个程序时,相应的 DLL 文件就会被调用。一个应用程序可使用多个

DLL 文件,一个 DLL 文件也可能被不同的应用程序使用。

1、 作用

  • 在 Windows操作系统中,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于促进代码重用和内存的有效使用。
  • 通过使用 DLL ,程序可以实现模块化,由相对独立的组件组成。 因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
  • 此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。

2、 特点

  • 使用较少的资源
  • 推广模块式体系结构
  • 简化部署和安装

利器登场

一、用法明细

tasklist 这个命令还是很好使的,先看下用法手册:

当然解决问题只用了 tasklist /m 一个命令就解决了,示例如下:

二、常用用法

1、查看本机进程

在"命令提示符"中输入 Tasklist 命令即可显示本机的所有进程(见下图)。本机的显示结果由5部分组成:图像名(进程名)、PID、会话名、会话#和内存使用。

2.查看远程系统的进程

在命令提示符下输入 以下命令:

注意:使用Tasklist命令查看远程系统的进程时,需要远程机器的RPC服务的支持,否则,该命令不能正常使用。

3.查看系统进程提供的服务

Tasklist命令不但可以查看系统进程,而且还可以查看每个进程提供的服务。如查看本机进程 SVCHOST.EXE 提供的服务,在命令提示符下输入如下命令。可以看到,有很多个SVCHOST.EXE 进程,对应很多项服务使用这个进程。

对于远程系统来说,查看系统服务也很简单,使用

Tasklist /s 220.25.122.21 /u admin /p admin123 /svc

命令,就可以查看IP地址为 220.25.122.21 的远程系统进程所提供的服务。

4.查看调用DLL模块文件的进程列表

要查看本地系统中哪些进程调用了 模块文件,只需在命令提示符下输入

Tasklist /m

即可显示这些进程的列表。上文已经给过演示,参考下即可。

5.使用筛选器查找指定的进程

在命令提示符下输入

TASKLIST /FI USERNAME ne NT AUTHORITY\SYSTEM /FI STATUS eq running

,就可以列出系统中正在运行的非 SYSTEM 状态的所有进程。其中 /FI 为筛选器参数,ne 和 eq 为关系运算符 "不相等" 和 "相等" 。

6、结束进程

1) Tasklist

谈到 Tasklist 命令,我们就不得不提到它的孪生兄弟 Taskkill 命令,顾名思义,它是用来关掉进程的。

要关掉本机的no进程,有两种方法

  • 先使用Tasklist查找它的PID,假设系统显示本机 no ( no 是个病毒性程序,很难删除,一般在C:/windows/system32下)进程的 PID 值为 1132,然后运行 Taskkill /pid 1132 命令即可。其中 /pid 参数后面是要终止进程的PID值。
  • 直接运行 taskkill /IM no 命令,其中 /IM 参数后面为进程的图像名。

详细用法如下:

2)、NTSD

系统 debug 级的 ntsd ,很多进程 Taskkill 是杀不了的,但是用ntsd就可以,基本上除了WINDOWS 系统自己的管理进程, ntsd 都可以杀掉,不过有些 rootkit 级别的超级木马就无能为力了,不过幸好这类木马还是很少的。

以上是对于 windows 平台进程相关的一些命令以及相关问题的整理回顾。

【写在最后】

1- 问题搜集

你在平时工作生活中遇到过 windows 平台哪些坑?又是如何解决的?欢迎留言探讨。

2- 如果文章对你有帮助,动动小手关注下点个赞

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“svchost如何开启,如何彻底关闭svchost,svchost关掉又自动开启,如何关闭svchost,如何删除svchost,如何禁用svchost”边界阅读