玩转Win2000/XP中的服务
IT商界
NT架构中的服务是指执行指定系统功能的程序、例程或进程,以便支持其他程序,尤其是底层(接近硬件)程序。使用服务的优点是显而易见的:①可以伴随系统一起启动;②不易被强行终止;③可以利用NT架构自身的安全特性做到普通用户无法对服务操作,有着较高的安全系数。
Windows系统从NT版本开始,就有了NT架构,特别是在Windows 2000/XP中,对这些服务功能的控制就更为方便了。
一、如何来管理服务
在Windows 2000/XP操作系统中,打开“控制面板→管理工具”,可以找到“服务”项(图1),这里显示了系统中的所有服务项目,你可以查看到每个服务的相关信息。
从“描述”中我们可以看到该服务的功能和作用,根据服务的功能和作用来判断是否需要启动该服务。在启动类型中可以看到该服务目前的状态,有手动(必须手工启动)、自动(随系统一起启动)和禁用3种方式。我们可以看到,默认情况下,很多服务都被配置成了自动启动,不过我们也可以更改服务的启动方式。
双击一个服务后,在该服务的属性页面中,我们可以看到该项服务的可执行文件路径、启动类型和服务状态等。在启动类型的下拉列表中就可以直接更改该服务的启动类型了(图2)。
提示:只有管理员或Administrators组成员才有更改服务相关属性的权限。另外,禁止了某些服务后,可能会导致系统不正常,此时可以在安全模式下更改服务配置或者恢复默认设置。
对多数个人用户来说,如果采用默认方式安装操作系统,则很多默认启动的服务其实并没必要,此时就可以手动将这些服务禁止(可参看相关资料),以免浪费系统资源。
二、添加、删除服务
除了系统自带的服务外,如今很多应用于NT架构的软件都开始广泛地使用服务,特别是反病毒软件,为了做到在不同权限账户里面都能够让反病毒软件随机启动,使用服务成为了一种极好的解决途径。
如果你想让一个程序在启动系统的时候自动运行,添加到启动组不是一个好方法,因为如果被别人删除就不管用了。但如果你使用了Windows 2000/XP,就可以把这个程序添加为一个服务,由于只有拥有权限的人才可以更改服务,因此只要你设置好权限,就不用担心会被别人删除了。那么该如何在系统中添加、删除服务呢?
Windows本身并没有提供在系统中添加服务的工具或选项,但是在Windows Server Resource Kit里面却提供了一套能够达到这个目的的小工具。工具套装里面有3个工具,其中srvinstw.exe运行于图形界面(GUI界面)中,instsrv.exeh和srvany.exe运行于命令行模式中。
这里我们以在Windows 2000/XP中将记事本程序Notes添加为服务为例,介绍如何在Windows中添加/删除服务。需要注意的是,对服务进行操作的时候必须使用管理员组成员登录,否则你将无法操作。
1.在图形界面中添加、删除服务
运行srvinstw.exe以后,可以看到有两个选项:添加或删除(图3)。点击下一步输入你要新增加的服务名(这里我们可以用Notes命名)后,继续点击下一步,指定你需要作为服务的可执行文件的具体路径(在本例中记事本程序的路径为C:\Windows\Notepad.exe)。
完成以后继续往下操作,这里会看到3个选项(图4):分别对应服务应用于自己的进程、文件系统驱动和设备驱动,由于Notes是应用程序,这里我们选择第一个选项:service is its own process(应用于自己的进程)。
点击下一步后会要求服务的运行环境(图5),一般我们采用第一个,就是作为系统账户运行,如果以后需要修改,可以在“控制面板→计算机管理→服务→服务”属性中重新定义。第一个选择下面有一个复选框,这里是指是否运行和桌面交换,用途是任何用户都可以使用这个服务,建议选中。同样,如果以后不需要这一项功能的话,也可以在“控制面板→计算机管理→服务→服务属性”中取消掉。
点击下一步后选择启动方式就可以把服务添加到系统服务中去了,下次启动的时候你先前指定的可执行文件就可以随系统一同运行了(图6)。
如果需要删除一个服务,首先需要停止这一项要删除的服务(在“控制面板→计算机管理→服务”中找到需要删除的服务,在该服务的属性面板中点击“停止”),接着在srvinstw.exe开始运行的选项中选择Remove,然后选择要删除的服务名,接着点击下一步即可。
2.在命令行中添加、删除服务
相对于图形界面的操作,命令行中的操作就没有那么简便了,但是使用命令行操作的一个优点是可以避免出现莫名其妙的错误提示。这里需要两个软件:Instsrv.exe和Srvany.exe。Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。二者都包含在上文中提到的工具套装中。
①命令行模式中服务的创建:首先把这两个程序保存在一个方便的位置,例如C盘根目录下。假设我们把记事本作为系统的一项服务启动,服务名取作Notes。
在命令行中(运行中输入CMD,然后回车即可打开)输入c:\instsrv.exe Notes c:\srvany.exe,接着运行regedt32打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,展开Services,找到刚刚添加的服务:Notes。
点击右键,新建一个项(主键),命名为“Parameters”,点击新建的Parameters,并再次新建一个字符串,名称为“Application”,键值为作为服务运行的可执行文件的路径(例如这里记事本的路径为C:\Windows\Notepad.exe),输入这个键值并确定关闭注册表编辑器。
现在这个服务已经成功地添加并且设置好了。如果你希望做得更加有特色,可以在Notes服务下建立一个名为Description的字符串类型的子键,键值为你对这个服务的描述,该描述可以在服务属性中看到。
接着注销掉当前用户,然后重新登录以完成最后的设置。在运行中输入“Services.msc”并回车,在列表中找到刚添加的服务名Notes,双击打开。在常规中可以设置启动方式,按照你需要的方式设定,其他的选项卡可以不必理会,使用默认的就行了。到此,服务创建完毕。
②命令行模式中服务的卸载:首先停止掉要卸载的服务,在命令中输入c:\instsrv.exe Notes remove,回车即可卸载掉一个服务。
提示:在添加服务的时候需要注意,服务名不能够重复,否则服务是无法创建的。另外虽然以上两个工具都具有卸载系统服务的功能,但系统安装好后就已经存在的服务千万不要随意卸载,否则你的系统将面临瘫痪的危险。
软件下载地址:http://smallfrogs.nease.net/download/services.exe





