svchost.exe是nt核心系统的非常重要的进程,对于2000、xp来说,不可或缺。很多病毒、木马也会调用它。所以,深入了解这个程序,是玩电脑的必修课之一。

大家对windows操作系统一定不陌生,但你是否注意到系统中“svchost.exe”这个文件呢?细心的朋友会发现windows中存在多个 “svchost”进程(通过“ctrl+alt+del”键打开任务管理器,这里的“进程”标签中就可看到了),为什么会这样呢?下面就来揭开它神秘的面纱。

发现

在基于nt内核的windows操作系统家族中,不同版本的windows系统,存在不同数量的“svchost”进程,用户使用“任务管理器”可查看其进程数目。一般来说,win2000有两个svchost进程,winxp中则有四个或四个以上的svchost进程(以后看到系统中有多个这种进程,千万别立即判定系统有病毒了哟),而win2003 server中则更多。这些svchost进程提供很多系统服务,如:rpcss服务(remote procedure call)、dmserver服务(logical disk manager)、dhcp服务(dhcp client)等。

如果要了解每个svchost进程到底提供了多少系统服务,可以在win2000的命令提示符窗口中输入“tlist -s”命令来查看,该命令是win2000 support tools提供的。在winxp则使用“tasklist /svc”命令。

svchost中可以包含多个服务

深入

windows系统进程分为独立进程和共享进程两种,“svchost.exe”文件存在于“%systemroot% system32”目录下,它属于共享进程。随着windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由 svchost.exe进程来启动。但svchost进程只作为服务宿主,并不能实现任何服务功能,即它只能提供条件让其他服务在这里被启动,而它自己却不能给用户提供任何服务。那这些服务是如何实现的呢?

原来这些系统服务是以动态链接库(dll)形式实现的,它们把可执行程序指向 svchost,由svchost调用相应服务的动态链接库来启动服务。那svchost又怎么知道某个系统服务该调用哪个动态链接库呢?这是通过系统服务在注册表中设置的参数来实现。下面就以rpcss(remote procedure call)服务为例,进行讲解。

从启动参数中可见服务是靠svchost来启动的。

实例

以windows xp为例,点击“开始”/“运行”,输入“services.msc”命令,弹出服务对话框,然后打开“remote procedure call”属性对话框,可以看到rpcss服务的可执行文件的路径为“c:\windows\system32\svchost -k rpcss”,这说明rpcss服务是依靠svchost调用“rpcss”参数来实现的,而参数的内容则是存放在系统注册表中的。

在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到[hkey_local_machine systemcurrentcontrolsetservicesrpcss]项,找到类型为“reg_expand_sz”的键“magepath”,其键值为“%systemroot%system32svchost -k rpcss”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“servicedll”的键,其值为“% systemroot%system32rpcss.dll”,其中“rpcss.dll”就是rpcss服务要使用的动态链接库文件。这样 svchost进程通过读取“rpcss”服务注册表信息,就能启动该服务了。

解惑

因为svchost进程启动各种服务,所以病毒、木马也想尽办法来利用它,企图利用它的特性来迷惑用户,达到感染、入侵、破坏的目的(如冲击波变种病毒“w32.welchia.worm”)。但windows系统存在多个svchost进程是很正常的,在受感染的机器中到底哪个是病毒进程呢?这里仅举一例来说明。

假设windows xp系统被“w32.welchia.worm”感染了。正常的svchost文件存在于“c:\windows\system32”目录下,如果发现该文件出现在其他目录下就要小心了。“w32.welchia.worm”病毒存在于“c:\windows\system32wins”目录中,因此使用进程管理器查看svchost进程的执行文件路径就很容易发现系统是否感染了病毒。windows系统自带的任务管理器不能够查看进程的路径,可以使用第三方进程管理软件,如“windows优化大师”进程管理器,通过这些工具就可很容易地查看到所有的svchost进程的执行文件路径,一旦发现其执行路径为不平常的位置就应该马上进行检测和处理。

由于篇幅的关系,不能对svchost全部功能进行详细介绍,这是一个windows中的一个特殊进程,有兴趣的可参考有关技术资料进一步去了解它
-----------------------------------------------------
Shutdown

Shutdown使您能够一次关闭或重新启动一台本地或远程计算机。Windows XP的关机是由Shutdown.exe程序来控制的,位于Windows\System32文件夹中
。在Windows 2000中是没有该程序的,如果想让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统目录下。使用方法:比如你的电脑要在22:00关机,可以选择“开始→运行”,输入“at 22:00 Shutdown -s”,这样,到了22点电脑就会出现“系统关机”对话框,默认有30秒钟的倒计时并提示你保存工作。如果你想以倒计时的方式关机,可以输入 “Shutdown.exe -s -t 3600”,这里表示60分钟后自动关机,“3600”代表60分钟。

语法:
shutdown [/i | /l | /s | /r | /a | /p | /h | /e] [/f] [/m \\ComputerName] [/t XXX] [/d [p:]XX:YY/c"Comment"]

参数

/i : 显示“远程关机对话框”。/i 选项必须是键入的第一个参数,之后的所有参数都将被忽略。

/l : 立即注销当前用户,没有超时期限。不能将 /l 与 /m \\ComputerName 或 /t 一起使用。

/s : 关闭计算机。

/r : 关机后重新启动计算机。

/a : 取消关机操作(仅在超时期限内有效)。a 参数仅可以与 /m \\ComputerName 一起使用。

/p : 仅关闭本地计算机(而不是远程计算机),没有超时期或警告。/p 只能和 /d 一起使用。如果您的计算机不支持关闭电源功能,使用 /p 将关闭系统但不会切断您的计算机电源。

/h : 使本地计算机处于休眠状态(如果已启用休眠)。仅可将 h 与 /f 一起使用。

/e : 允许在目标计算机上记录意外关机原因。

/f : 强制关闭正在运行的应用程序而不提前警告用户。

警告

• 使用 /f 选项可能导致未保存的数据丢失。

•/m \\ComputerName :指定目标计算机。不能与 /l 选项一同使用。

/t XXX : 将重新启动或关机前超时期限或延迟设置为 XXX 秒会使得在本地控制台显示一条警告信息。您可以指定的范围为 0 - 600 秒。如果省略 /t,则默认超时期限为 30 秒。

/d [p:]XX:YY : 列出系统重新启动、关机或关闭电源的原因。下表描述了参数值。

说明:
p: 表示重新启动或关机是已计划的。如果您不使用 p:选项,关机事件跟踪程序假设未计划重新启动或关机。

XX: 指定主要原因代码 (0-255)。

YY: 指定次要原因代码 (0-65535)。


/c"Comment" :使您可以对关机原因做出详细注释。必须首先使用 /d 选项提供一个原因。必须将注释引在引号中。最多可以使用 511 个字符。

/? :在命令提示符下显示帮助,包括在本地计算机上定义的主要原因和次要原因的列表。只键入 shutdown 而不带任何参数也可以显示帮助。

注释
• 必须为用户授予关闭系统的用户权利,该用户才能使用 shutdown 命令关闭本地或远程管理的计算机。详细信息,请参阅“相关主题”中的“访问控制概述”和“特权”。

• 用户必须是 Administrators 组的成员才能对本地或远程管理的计算机的意外关机进行批注。如果目标计算机已加入某个域,则 Domain Admins 组的成员可能会执行该过程。详细信息,请参阅默认本地组和默认组。

• 如果希望一次关闭多台计算机,可针对每台计算机使用脚本来调用 shutdown,或者可使用 shutdown /i 显示远程关机对话框。

• 一旦指定了主要和次要原因代码,您必须首先为计划使用某种特定原因的每个计算机定义那些原因代码。如果目标计算机上没有定义原因代码,关闭事件跟踪程序将无法记录正确的原因文本。

• 切记使用 p: 参数指出关机是计划关机。省略 p:表示关机是非计划关机。如果键入 p:,后面跟着非计划关机的原因代码,命令将不会执行关机。相反,如果省略 p:并为计划关机键入原因代码,命令也不会执行关机。

示例


要强制让应用程序在一分钟延迟后关闭并重新打开本地计算机,并注明原因是“应用程序:维护(计划内)”,注释内容为“重新配置 myapp.exe”,请键入:

shutdown /r /t 60 /c "Reconfiguring myapp.exe" /f /d p:4:1

要使用相同的参数重新启动远程计算机 \\ServerName,请键入:

shutdown /r /m \\servername /t 60 /c "Reconfiguring myapp.exe" /f /d p:4:1


柴油发电机
发电机
柴油机
柴油发电机
13636374743(上海)
13291526067(嘉兴)