http://www.cr173.com/soft/64394.html

要把应用程序添加为服务,你需要两个小软件:Instsrv.exe和Srvany.exe。Instsrv.exe可以给系统安装和删除服务,Srvany.exe可以让程序以服务的方式运行。这两个软件都包含在Windows NT Resource Kit里,如果你没有,也可以在本站下载 instsrv.exe和 srvany.exe。

srvany.exe可用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。

如何使用:

当你获取到srvany后并决定将某程序作为服务启动后,请先将srvany安装为系统服务,具体的安装方法有很多,这里使用instsrv,语法如下:

安装 instsrv ServiceName C:\Windows\System32\srvany.exe
卸载 instsrv ServiceName remove

(ServiceName 即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。)

安装完毕后,我们需要对srvany.exe进行配置,以便于能够加载我们指定的程序,配置的方法是,开始 - 运行 - regedit,打开注册表,定位到下面的路径。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName

如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。

名称 Application 值为你要作为服务运行的程序地址。

名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。

比如这里是个配置实例,我们这里配置的服务名称是NGINX,其余是nginx的安装配置情况。

收起

导入注册表的方法:

当然还有一个比较简单的做法,那就是将下面的文本保存为*.reg文件,然后双击导入注册表。

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名称\Parameters]

"Application"="值为你要作为服务运行的程序地址"
"AppDirectory"="值为你要作为服务运行的程序所在文件夹路径"
"AppParameters"="值为你要作为服务运行的程序启动所需要的参数"

至此,MyService已经安装成windows服务了,在Window服务项中即可查看。

批处理说明:

1. run-install.bat 封装了安装服务的操作(上面有提到)。需要传入参数有服务名称,程序名称。

@echo off

rem 参数依次为 服务名称 可执行文件名称
@echo 服务名称:%1
@echo 程序名称:%2

rem 定义需要运行的程序路径
set curExe=%~dp0%2
rem 定义注册表路径
set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\
rem 定义srvany.exe文件路径
set sourcePath=%~dp0srvany.exe

rem 进入当前目录
cd /d "%~dp0"
rem 安装引导服务
instsrv %1 "%sourcePath%"
@echo 服务添加完成

rem 添加注册表语法: reg add 注册表路径 /v 项名称 /t 值类型 /d 数据 /f 表示强行修改不提示

rem 名称 Application 值为你要作为服务运行的程序地址 /d对应的参数有斜杠不是为了转义引号,而是路径还有斜杠,默认将引号转义了,额外添加斜杠是为了保留引号
reg add %regpath% /v AppDirectory /t REG_SZ /d "%~dp0\" /f

rem 名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径
reg add %regpath% /v Application /t REG_SZ /d "%curExe%" /f

rem 名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数
reg add %regpath% /v AppParameters /t REG_SZ /f
@echo 注册表添加完成

2.install.bat 命令含义:进入当前目录,调用当前目录下的run-install.bat文件,并传入参数,完成服务安装。服务名:MyService 执行程序:Console.exe
@echo off
cd /d %~dp0
call run-install.bat MyService Console.exe
pause

3.run-del.bat 简单封装了卸载服务的操作,传入服务名称即可。

@echo off

rem 参数依次为 服务名称
@echo 服务名称:%1

rem 进入当前目录
cd /d %~dp0
rem 卸载引导服务
instsrv %1 remove

4.del.bat 命令含义:进入当前目录,调用当前目录下的run-del.bat文件,并传入参数,完成服务卸载。服务名:MyService
@echo off
cd /d %~dp0
call run-del.bat MyService
pause

另外一个 nssm

http://nssm.cc/

转载于:https://blog.51cto.com/tianshili/1729979

Windows创建用户定义的服务(srvany.exe和instsrv.exe )相关推荐

  1. 创建用户定义的数据类型

    创建用户定义的数据类型可以使用 Transact-SQL 语句.系统存储过程 sp_addtype 可以来创建用户定义的数据类型.其语法形式如下:  sp_addtype {type},[,syste ...

  2. android sqlite自定义函数,如何在SQLite中创建用户定义的函数?

    SQLite不像Oracle或MS SQL Server那样支持用户定义的功能.对于SQLite,必须使用C / C ++创建一个回调函数,并使用sqlite3_create_function调用将该 ...

  3. 在jMeter里如何创建用户定义的能生成随机数的变量

    使用jMeter进行API的并发请求测试时,我们经常需要生成一些包含随机数的数据,以此来区分每个随机请求. 在jMeter里,提供了很多预定义的函数可供我们使用.比如${__Random(1,100) ...

  4. python定义一个列表_如何在Python中创建用户定义的列表?

    你需要将怪物的数量发送给使用它的函数:def welcome(): number = monsters() print('Alright, ' + str(number) + ' monsters.' ...

  5. atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany java linux

    atitit.加入win 系统服务 bat批处理程序服务的法总结instsrv srvany  java linux 系统服务不同于普通视窗系统应用程式.不可能简简单单地通过执行一个EXE就启动视窗系 ...

  6. 使用instsrv.exe+srvany.exe将应用程序安装为windows服务

    一.什么是instsrv.exe和srvany.exe instsrv.exe.exe和srvany.exe是Microsoft Windows Resource Kits工具集中 的两个实用工具,这 ...

  7. 用instsrv.exe+srvany.exe将应用程序安装为windows服务

    下载 链接:https://pan.baidu.com/s/1gKu_WwVo-TeWXmrGAr9qjw 提取码:s1vm 用instsrv.exe安装srvany.exe 将instsrv.exe ...

  8. db2 控制台执行创建函数语句_DB2中创建和使用SQL用户定义函数

    本文将为您详细介绍DB2数据库中创建用户自定义行数,用以扩展扩展内置的 DB2 函数的方法,供您参考,希望对您有所帮助. 可以创建用户定义函数来扩展内置的 DB2 函数.例如,创建计算复杂的算术表达式 ...

  9. Instsrv.exe可以给系统安装和删除服务

    最近一段时间我们公司开发一款新的产品,要在服务器上运行一个服务端程序,为了方便我就希望能将这个程序注册成系统服务开机自动启动而不用每次重启系统都要手动启动程序.经过baidu和google这两位大神的 ...

  10. OpenVAS漏洞扫描基础教程之创建用户

    OpenVAS漏洞扫描基础教程之创建用户 OpenVAS管理服务 默认情况下,OpenVAS服务仅创建了一个名为admin的用户,而且是管理员用户(拥有最高的权限).如果想要其它客户端登陆的话,不可能 ...

最新文章

  1. 手机号中间四位处理为‘****’
  2. C++用二进制交换二个数的实现算法(附完整源码)
  3. Teamtalk源码分析
  4. 白硕 | 基于区块链的众包社区激励机制
  5. 240多个jquery插件
  6. uboot启动第一阶段——start.S
  7. PyTorch大更新!谷歌出手帮助开发,正式支持TensorBoard | 附5大开源项目
  8. Linux系统(二)常用命令、进程管理
  9. KTV用什么收银管理系统管店?
  10. VAR模型分析联合内生变量的动态关系
  11. mysql类exadata功能_EXADATA智能扫描
  12. Matlab版本svm工具箱,matlab libsvm工具箱
  13. python编程 个人所得税计算器
  14. 手游LTV(生命周期价值)计算公式
  15. java得到几天前的日期
  16. 磁盘空间满问题排查方法
  17. 再度盈利,搜狐稳了?
  18. 区块链软件公司:区块链到底能做啥?
  19. 攻防世界_江苏工匠杯_MISC_看雪看雪看雪
  20. Linux文件导入gitee仓库中

热门文章

  1. 多路数据采集系统软件测试,基于AT89S52多路数据采集系统的设计-测试测量-与非网...
  2. 如何判断是否是webservice接口
  3. 计算机 程序安装管理,电脑安装软件时提示:系统管理员设置了系统策略,禁止进行此安装...
  4. 双向可控硅的工作原理
  5. ARM嵌入式系统中的体系结构
  6. 推荐几款实用性强的外业勘察地图软件
  7. Echarts风向玫瑰图
  8. EXCEL中所有函数的使用
  9. 谷歌绝不会退出中国市场
  10. CMD命令备份驱动和安装驱动