代码改变世界

使用srvany.exe把程序安装成windows服务的方法

2021-09-27 16:13  jetwill  阅读(21)  评论(0编辑  收藏  举报

http://mazhihui.iteye.com/blog/1294431

https://www.cnblogs.com/liuqiyun/p/9897396.html

srvany.exe是什么?

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

如何获取?

  你可以通过下载并安装Microsoft Windows Resource Kits 获得或者可以通过我分享的下载地址得到。 

如何使用?

  当你获取到srvany后并决定将某程序作为服务启动后,请先将srvany安装为系统服务,具体的安装方法有很多,比如说可以通过Microsoft Windows Resource Kits中另外一个实用的小工具instsrv.exe进行安装,将srvany.exe和instsrv.exe拷贝到C:\Windows\System32\后,我们可以通过下面的命令行进行srvany.exe的服务安装:
instsrv ServiceName C:\Windows\System32\srvany.exe 

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
(同样的ServiceName是你刚才安装服务时自定义的服务名称。)

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

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

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

  至此,nginx已经安装成windows服务了.验证:cmd - services.msc ,打开服务,查看!此时可以启动该服务了。 

   (instsrv ServiceName remove 命令可删除服务。注意别删了系统服务哦!)
https://social.technet.microsoft.com/Forums/en-US/6bd27cac-e402-4bf2-9c7c-c329f42262fb/run-a-batch-job-as-windows-service?forum=winservergen

The steps I followed :

1.Copy srvany.exe it to Win2008R2 server (e.g. C:\Windows\System32\ ).
2.Use "sc " to create a new service that launches "srvany " (e.g. sc create MyService binPath= C:\Windows\System32\srvany.exe DisplayName= "My Custom Service" )
3.Using RegEdit : create a "Parameters " key for your service (e.g. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Paramaters\ )
4.Using RegEdit : within the newly created "Parameters " key , create a string value called "Application " and enter the full path to the application you are wanting to run as a service.  (No quotes required.)