需要用到两个工具,分别是“Srvinstw.exe”和“Srvany.exe”,这两个工具都能够在Windows 2000的资源工具包中找到。
http://mooncat.51.net/ls/fu/srvinstw.rar
http://fgg.minidns.net/scripts/lb5000/attachment.cgi?forum=32&topic=116&postno=1&type=.zip
也可以下载.
安装服务:
卸载服务:
对于不能普通方式下安装为服务的程序,用srvany.exe来实现。
该工具添加的注册表信息并不完全,还是需要手工添加 Parameters 和 Application,并且还要 srvany.exe,和修改 ImagePath 的数值才可,否则在启动服务时显示:1053 服务没有及时响应启动或控制请求。
在补充完全注册表信息后,就正常了。
以下是一个例子
存为“文件名.reg”,然后用鼠标双击这个"文件名.reg"文件,选确定,就可添加到注册表了。实际程序的参数,你需要根据具体的程序来调整。
REGEDIT4
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/srvany/Parameters]
"Application"="c://usr//local//bin//dmh_wish.exe"
"AppParameters"="-f dmh84_server startup /"after 1 {mbx whenmsg startup_RPC mbx_RPC}/""
"AppDirectory"="c://usr//local//bin"
图形界面的程序,如果做成服务后(并允许与桌面交互),注销后就会被关闭,反之则弹不出图形界面,很不爽。如果你不想让别人看见,就不允许与桌面交互,那除了进程外什么都看不见。
将容易导致系统被入侵的服务“禁用”,然后将这些服务对应的注册表键删除,这样就算对方连接到你的系统服务列表中来也不能修改服务的属性,不能修改服务属性就不能启动服务。打开注册表编辑器,依次找到“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices”项,其下的每个子键就是系统中对应的“服务”,如“Messenger”服务对应的子键是
“Messenger”,但有的服务这两个名字不会相同,不过也很容易找到,
“DisplayName”的键值就是服务的显示名称。这里以删除“Messenger”服务为例,其它服务方法相同,只是在注册表中删除的项不同,在删除这个项之前要先将其导出备份,然后点选“Messenger”项,按鼠标右键选择“删除”(重命名也可以)命令。此时在服务列表中双击“Messenger”就会弹出如下图所示的错误信息,当然对方连接到你的服务列表双击时也会出现这样的提示,而不是出现属性框。如果要恢复这个服务,只需将刚才备份的注册表文件导入到注册表中就可以了。
另一种添加为自启动的方法:(Win2000/XP中适用)
在“开始→运行”中执行“Gpedit.msc”。打开“组策略”,可看到“本地计算机策略”中有两个选项:“计算机配置”与“用户配置”,展开“用户配置→管理模板→系统→登录”,双击“在用户登录时运行这些程序”子项进行属性设置,选定“设置”项中的“已启用”项并单击“显示”按钮弹出“显示内容”窗口,再单击“添加”按钮,在“添加项目”窗口内的文本框中输入要自启动的程序的路径,如图所示,单击“确定”按钮就完成了。
重新启动计算机,系统在登录时就会自动启动你添加的程序。用这种方式添加的自启动程序在系统的“系统配置实用程序”里找不到,同样在我们所熟知的注册表项中也找不到。
通过这种方式添加的自启动程序虽然被记录在注册表中,但是不在我们所熟知的注册表的[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run]项和[HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run]项内,而是在注册表的[HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/Explorer/Run]项。
Run SRVINSTW.EXE
1. Put both files into the system32 system directory.
2. run SRVINSTW.EXE
3. Select Install as a service, Local Machine
4. Give your service any name you desire
5. When prompted for the path to the service, give the path to SERVANY.EXE in your system32 directory
6. Select Service is it’s own process
7. Set the login credentials. System account appears to work
Edit your registry
1. Run regedit.exe
2. Go to HKEY_LOCAL_MACHINE/SYSTEM/Current Control Set/Services/ (the name you picked in step 4 above)
3. Add a key = “Parameters”
4. Add a string value = “Application”. Set this to the command to run your wiki. e.g. “c:/ruby/bin/ruby.exe c:/instiki-0.9.1/instiki.rb -p 2500” (or use rubyw.exe)
5. Add a string value = “AppDirectory”. Set this to the path to ruby.exe. e.g. “c:/ruby/bin/”
Restart your machine
1. check to see if it worked.
2. if it didn’t work, go to Control Panel/Administrative tools/services. Here you can find your service and change the settings.
==================================================
我们在用.net 开发Window Service 时,有时候,由于开发阶段,会频繁的修改代码,就经常会发现用Installutil /u 卸载不干净服务,进而影响我们的开发调试。
这时候,我们可以用另外一个命令来卸载,如下:
C:/WINDOWS/system32>sc delete MyService
其中的 MyService 是你的服务的名字,比如如下的服务截图,它的卸载命令就可以如下写:
sc delete "郭红俊的定时工作服务"
当然你也可以用这个工具create,start,stop服务。比如,我们就可以用下面的命令,安装服务,并把服务启动起来。
installutil HongjunGuo.JobsWindowsService.exe
sc start "郭红俊的定时工作服务"
相关参考资料:
windows里非.net服务的删除
http://www.chinageren.com/jc/HTML/126076.html
=========================
使用srvinstw.exe和srvany叫应用程序加入到系统服务的方法
近日,小胖为了保证局域网中共享服务器的稳定运行和安全,决定为该服务器安装网络防火墙,但由于企业级的网络防火墙价格较高,单位暂时不会购买,因此小胖打算暂时使用瑞星个人网络防火墙作为“企业级”网络防火墙。但问题也接踵而来了。
瑞星个人网络防火墙是以应用程序形式运行的,在每次登录Windows系统后,该网络防火墙才会开始运行,无法在后台以系统服务形式运行。如何解决这个难题呢?小胖在Windows 2000资源工具箱中找到了一个工具“srvinstw.exe”,它可以将应用程序变为Windows系统服务,这样一来,瑞星网络防火墙就可以在后台以系统服务形式运行,小胖不必每次都要登录Windows系统来启动防火墙。
srvinstw的应用
将应用程序变成Windows系统服务,并不是简单使用“srvinstw”就可以完成的,这里要注意,应用程序变成系统服务要分两种情况。
如果程序员在开发设计某个应用程序的时候,就充分考虑到了可以将它作为系统服务,那么将这些应用程序变成Windows系统服务就非常简单,通过“srvinstw”就可以完成。
但是,大部分应用程序在开发设计之初并没有考虑到这点,如瑞星个人网络防火墙、花生壳等。单纯使用“srvinstw”是无法将它们变成系统服务的,这时就需要使用“srvinstw+srvany”的组合来完成这一操作,其中“srvany”也是Windows 2000资源工具箱中的一个命令。
实 战
现在小胖就要将瑞星个人网络防火墙这个应用程序变成Windows系统服务。由于瑞星个人网络防火墙在设计之初并没考虑到要将它作为系统服务,因此它的转换只能使用“srvinstw+srvany”组合方式来完成。
第一步:添加系统服务
首先在局域网中的Windows 2000服务器中安装好瑞星个人网络防火墙。接着运行Windows 2000资源工具箱中的“srvinstw.exe”,弹出“Install/Remove Server”向导对话框,然后选择“Install a Server”(添加一个服务)单选项,点击“下一步”按钮后,选择“Local Machine”单选项,这样就可以开始着手将瑞星个人网络防火墙配置成局域网中本地服务器的一个系统服务,点击“下一步”按钮后,在“Server Name”对话框中为该服务起个名字(如“RFW”)。
接着要为该服务选择执行文件,这里要注意不能选择瑞星个人网络防火墙的主程序“rfw.exe”,因为在设计它时没有考虑到当作系统服务使用。现在使用“srvany.exe”可以解决这个难题,点击“Browse”按钮找到“srvany.exe”文件。接下来,小胖选择“Server is its own process”单选项,这样该程序就被定义为独立进程运行状态了,点击“下一步”按钮,选择“System Account”单选项。同时,指定该服务以“Automatic”(自动)方式运行,免去手工启动的麻烦。最后,点击“完成”按钮即可。
第二步:修改注册表
完成了系统服务的添加操作后,“RFW”服务还不能正常运行,必须修改Windows 2000服务器的注册表。打开注册表编辑器,展开“HKEY_LOCAL_MACHINE/SYSTEM/currentcontrolset/services”,找到“RFW”项目,在该项下面新建一个名为“Parameters”的项目,接着在“Parameters”项下新建一个类型为字符串值的“application”子键,该键值为瑞星个人网络防火墙主程序“rfw.exe”的磁盘路径,最后重新启动Windows 2000服务器。
通过上述设置,小胖已将局域网内共享服务器中的瑞星个人网络防火墙变成服务器的一个系统服务了。它默认在后台运行,不用登录Windows 2000系统即可启动它。
srvany.exe
www.wjqblog.com/up/1133425225.exe
SRVINSTW.exe
www.wjqblog.com/up/1133425311.exe