前言
之前的文章中,涉及到服务化部分太阳当空照-Windows服务化sc.exe
以及太阳当空照-Windows服务化方式脚本封装sc指令
两章博文内容中,分别简单讲解了,使用sc.exe
在符合Windows服务化的要求的应用程序
前提下,实现服务的注册和运行,以及实现自定义sc
指令的脚本化操作方式,引导式地对服务实现基本操作,同样的哪怕是提高交互体验,本质上,sc
局限性也是很明显的,对能够实现服务化程序有直接要求,如果是现有需要服务化的应用程序并不支持服务化,哪怕直接注册,对应服务也无法启动成功,这在实际使用过程中,三方的应用程序服务化,尤为明显,于是乎,晚上查找到查找到包含在微软Microsoft Windows Resource Kit Tools
中instsrv.exe
和srvany.exe
,通过一篇文章Gist
:https://gist.github.com/eyecatchup/0107bab3d92473cb8a3d3547848fc442得知这个微软提供的工具包是针对的Windows Server
以及Windows XP
,高版本系统以后,没有与之定义版本,只能使用老版本rktools.exe
进行安装,而rktools.exe
实际就是Microsoft Windows Resource Kit Tools
全家桶的简称,原文内容如下:
Additional Information
Though the available RK-Tools package is named “Microsoft® Windows® Server 2003 RK-Tools” and it was specifically released for Server 2003, all tools have official and full Windows® XP support, too.
Unsupported OS Versions
Though not officially supported, you can also install the RK-Tools Server 2003 bundle on Windows® Vista, Windows® 7 and Windows® 10, but note that some of the tools will not work as intended or not work at all (e.g. some tools generate errors like
Dll missing
).Notes for Windows® 7
In Windows® 7, when you launch the installer, you will get an error saying
This program has known compatibility issues
. Just ignore the warning and click Run program and continue with installation.
对应的全家桶包,请留下评论或私信笔者进行获取
安装rktools
需要注意的是,安装步骤不是必须项,如果本地目录C:\Program Files (x86)\Windows Resource Kits\Tools\
已存在,则本机已经安装对应工具包,可以跳过此步骤,转到下一步,程序服务化注册
左键双击运行rktools.exe
依据提示信息,填写当前用户信息,无特殊要求
安装默认路径为C:\Program Files (x86)\Windows Resource Kits\Tools\
点击安装后,Windows 10
会提示是否安装来之某一个路径下的rktools.msi
,确认安装,选择是,否则选择否
查看系统环境变量
中,Path
或path
已经包含了对应的全家桶安装目录,没有就自己手动添加
安装完成之后,转到上述的安装目录中,发现已经包含instsrv.exe
和srvany.exe
,或者打开cmd
指令执行指令
>instsrv /? Installs and removes system services from NT INSTSRV <service name> (<exe location> | REMOVE) [-a <Account Name>] [-p <Account Password>] Install service example: INSTSRV MyService C:\MyDir\DiskService.Exe -OR- INSTSRV MyService C:\mailsrv\mailsrv.exe -a MYDOMAIN\joebob -p foo Remove service example: INSTSRV MyService REMOVE
工具简述
instsrv.exe
安装和删除系统服务,允许为Windows NT
应用程序和某些32为应用程序(非批处理文件),创建Windows NT
用户定义的服务
>instsrv /? Installs and removes system services from NT INSTSRV <service name> (<exe location> | REMOVE) [-a <Account Name>] [-p <Account Password>] Install service example: INSTSRV MyService C:\MyDir\DiskService.Exe -OR- INSTSRV MyService C:\mailsrv\mailsrv.exe -a MYDOMAIN\joebob -p foo Remove service example: INSTSRV MyService REMOVE
srvany.exe
允许Windows NT
应用程序作为服务运行,实际上srvany.exe
是作为目标程序的服务套壳程序,用于接受服务操作的相关指令,实现被包壳程序的运行和停止,与instsrv.exe
一起使用
创建自定义服务
>[path]\instsrv.exe [servicename] [path]\srvany.exe
path
对应实际的instsrv.exe
和srvany.exe
所属目录,依据上述rktools.exe
方式安装,不需要进行设置,默认配置了系统环境变量
servicename
为需要注册的服务名称,由用户自定义