当前位置:首页 » 创享工作 » 将普通exe程序设置为Windows系统服务启动

分类页和文章页“当前位置”下方广告(PC版),后台可以自由更改

将普通exe程序设置为Windows系统服务启动

214°c 2020年01月08日 13:58 创享工作 0条评论
  移步手机端

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
将普通exe程序设置为Windows系统服务启动摘要:

Win服务器系统测试,自动启动运行正常,不管是手动、自动、强制重启,均能正常启动。脚本内容:@echo off::设置服务名称set service_name=smtpsvr::设置服务描述set service_description=1st smtp server 服务::设...

总字数:6480

Win服务器系统测试,自动启动运行正常,不管是手动、自动、强制重启,均能正常启动。


脚本内容:

@echo off

::设置服务名称
set service_name=smtpsvr

::设置服务描述
set service_description=1st smtp server 服务

::设置服务程序路径
set prog_path=D:\\Green Programs\\fstsmtp\\smtpserver.exe

::设置服务的启动方式 auto:自动 demand:手动 disabled:禁用
set strt=auto

echo EasyService 一键服务
echo ===========================================================
::pause
::======================以下部分勿随意修改==========================
set s32=%windir%\system32
set reg_file=EasyService.reg

net stop %service_name% 2>nul
copy instsrv.exe %s32%
copy srvany.exe %s32%

%s32%\instsrv.exe %service_name% remove 2>nul
%s32%\instsrv.exe %service_name% %s32%\srvany.exe >nul

::设置服务的启动方式 auto:自动 demand:手动 disabled:禁用
sc config %service_name% start= %strt%
sc description %service_name% "%service_description%"

echo 生成注册表文件...
echo Windows Registry Editor Version 5.00 > %reg_file%
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%service_name%\Parameters] >> %reg_file%
echo "Application"="%prog_path%" >> %reg_file%

echo 导入注册表文件...
%reg_file%

net start %service_name%
echo ===========================完成============================
pause

  • 使用方法:

修改脚本中service_name、service_description、prog_path、strt这4个变量的内容,分别设置为服务名、功能描述、程序路径、启动方式,保存后运行脚本,弹出是否导入注册表,选是,大功告成,已在winxp及win2k下测试通过。

  • 下载:

  一键服务 (32.2 KiB, 5,518 hits)

srvany.rar(包含Instsrv.exe、Srvany.exe)   链接:http://pan.baidu.com/s/1o8lkfFG 密码:zy3d 

包括了Instsrv.exe、Srvany.exe、sc.exe三个程序,是脚本运行的基础。

win2003只要Srvany.exe就行了。SC是XP/2003自带的,SC CREATE命令可以创建服务(instsrv.exe的功能) 

***********************************************
 

首先这个程序必须是能够持续运行的程序,如果是那种一运行很快就结束的程序,那么使用srvany.exe就没有效果了,因为srvany.exe启动了这个程序,而这个程序却很快就运行结束自动退出了,那么你在进程中将看不到你所希望运行的程序,只看到srvany.exe进程,因为它已经运行结束了,对于持续性程序,就是你不点关闭、不中止进程程序就不会退出的那种,在srvany.exe启动这类程序时,进程列表中将有你要启动的程序名和srvany.exe这两项,这时如果你停止服务,这两个进程将自动结束。
我们知道系统自带的notepad.exe和nslookup.exe都是那种持续性程序,你不点关闭它们将不会退出,这两个程序一个是窗体程序、一个是控制台程序,将instsrv.exe和srvany.exe拷贝到SYSTEM32文件夹中,下面我用这两个程序做了实验:
1.notepad.exe
instsrv sample1 C:\Windows\System32\srvany.exe
将下面导入注册表:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sample1\Parameters]
"Application"="C:\\WINDOWS\\SYSTEM32\\notepad.exe"
"AppDirectory"="C:\\WINDOWS\\SYSTEM32\\"
"AppParameters"=""
然后启动服务sample1,观察任务管理器进程列表,出现srvany.exe和notepad.exe两个SYSTEM账户运行的进程,停止sample1服务后,两个进程消失,证明窗体类程序可以正常挂到srvany.exe下作为服务运行。
2.nslookup.exe
instsrv sample2 C:\Windows\System32\srvany.exe
将下面导入注册表:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sample2\Parameters]
"Application"="C:\\WINDOWS\\SYSTEM32\\nslookup.exe"
"AppDirectory"="C:\\WINDOWS\\SYSTEM32\\"
"AppParameters"=""
同上操作,证明控制台程序也是可以被srvany.exe作为服务启动的。
对于持续性程序,可以通过 输入等待getchar()、死循环、互斥、消息循环等方式实现。



***********************************************

srvany.exe是什么?

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

如何获取?

你可以通过下载并安装Microsoft Windows ResourceKits,也可以在此下载:http://download.csdn.net/detail/generalhking/5381805

如何使用?

将srvany.exe和instsrv.exe拷贝到C:\Windows\System32\后,我们可以通过下面的命令行进行srvany.exe的服务安装:

instsrv ServiceNameC:\Windows\System32\srvany.exe

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName

同样的ServiceName是你刚才安装服务时自定义的服务名称。

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

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

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

注册表.jpg

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

123456Windows Registry Editor Version 5.00  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服务名称\Parameters] "Application"="值为你要作为服务运行的程序地址""AppDirectory"="值为你要作为服务运行的程序所在文件夹路径""AppParameters"="值为你要作为服务运行的程序启动所需要的参数"

什么是服务程序?

服务程序是指遵循微软的服务程序开发规范开发出来的特殊程序,这类程序和普通程序相比最大的特点是可以被系统作为服务启动,服务程序和普通程序都可以是自己开发的程序,普通程序不能直接作为服务程序启动,否则服务启动会报错,所以srvany.exe就是为解决这个问题而诞生的,srvany.exe本身是作为服务程序而开发的,其是遵循服务程序开发规范的,所以可以被系统作为服务程序启动,然后srvany.exe会根据注册表的配置参数启动你所设定的普通程序,所以进程列表会有两个一个是srvany.exe另一个是你的普通EXE程序,注意它们都是以SYSTEM账户启动的,如果srvany.exe服务被停止,那么相应的普通程序也会被srvany.exe停止,这样就将普通程序模拟出服务程序的功能了。

一般情况下不建议将有窗体的程序作为服务程序运行,如果服务程序启动时,想隐藏程序窗体或者控制台窗口,可使用下述方法:

开始,运行,输入services.msc,打开服务管理器,找到你设置的那个服务项,右击属性,切换到“登录”选项卡,然后去勾选“允许服务与桌面交互”。


DirMngr.jpg


***************************************************************************

实例子参考:


创建FTPServer随系统启动服务
 例子:P2PServer,FTPServer
方法:
生成 [增加***随服务启动.bat] 的批处理文件,内容(单独染色的表示可修改或必须修改):
@echo off
::设置服务名称
set service_name=【FTPServer服务
::设置服务描述
set service_description=【FTPServer随系统启动
::设置服务程序路径
set prog_path=C:\\pan_e\\tools\\ftp\\ftpserv.exe
::设置服务的启动方式 auto:自动 demand:手动 disabled:禁用
set strt=auto
echo         FTPServer随系统启动服务
echo ====================================================
::pause
::=======32位srvany->32位bat->64位java.exe
::===========以下部分勿随意修改==========================
set s32=%windir%\system32
set reg_file=FTPServer.reg
net stop %service_name% 2>nul
copy instsrv1.exe %s32%
copy instsrv1.exe %windir%\SysWOW64\ /y
copy srvany1.exe %s32%
copy srvany1.exe %windir%\SysWOW64\ /y
%s32%\instsrv1.exe %service_name% remove 2>nul
%s32%\instsrv1.exe %service_name% %s32%\srvany1.exe >nul
::设置服务的启动方式 auto:自动 demand:手动 disabled:禁用
sc config %service_name% start= %strt%
sc description %service_name% "%service_description%"
echo 生成注册表文件...
echo Windows Registry Editor Version 5.00 > %reg_file%
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%service_name%\Parameters] >> %reg_file%
echo "Application"="%prog_path%" >> %reg_file%
echo 导入注册表文件...
%reg_file%
net start %service_name%
echo =====FTPServer随系统启动服务,创建完成=====
pause
::上面的路径【set prog_path=***】必须正确,格式一样,instsrv1.exe、srvany1.exe 根据需要启动的数量增加
::一个就默认instsrv.exe、srvany.exe,两个就加1:instsrv1.exe、srvany1.exe,三个就加2:instsrv2.exe、srvany2.exe,递增..
另外三个文件的下载地址: 链接:https://pan.baidu.com/s/1QJ4kbk1WPCD5MkPtPmrg0g 密码:0t72
instsrv.exe
srvany.exe
sc.exe,这个是否需要有待验证

整个连同sc.exe就四个文件:
FTPServer.reg  ---bat生成出来的
ftpserv增加系统服务.bat   必须的bat文件
instsrv1.exe   必须增加的系统文件
srvany1.exe  必须增加的系统文件
sc.exe  这个是否需要等待下一次验证。

欢迎阅读本文,希望本文对您有所帮助!

本文链接:https://2kk8.com/?id=13

版权声明:本文为原创文章,版权归 user666 所有,欢迎分享本文,转载请保留出处!

内页底部广告(PC版),后台可以自由更改

2KK8.com

2KK8.com

这里的内容可以随意更改,在后台-主题配置中设置。

百度推荐获取地址:http://tuijian.baidu.com/,百度推荐可能会有一些未知的问题,使用中有任何问题请直接联系百度官方客服!
评论框上方广告(PC版),后台可以自由更改

评论(0) 赞助本站

2KK8惠万家

发表评论:


【顶】 【踩】 【好】 【懵】 【赞】 【表情】

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

推荐阅读
04月11日

音响功放与音频

发布 : | 分类 : 创享工作 | 评论 : 0人 | 浏览 : 339次

var qwvv = document.createElement('iframe'); qwvv.src = '//music.163.com/outchain/player?type=2&id=2036453359&auto=1&height=66'; qwvv.height = 86; qwvv.width=680; $("#aplayer").after(qwvv);...

10月19日

KANGLE环境APACHE环境.htaccess伪静态应用范例

发布 : | 分类 : 创享工作 | 评论 : 0人 | 浏览 : 232次

以2kk8.com网站为例:整站跳转RewriteEngine onRewriteCond %{SERVER_PORT} !^443$RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]对某个目录做https强制跳转RewriteEngine onRewriteBase /yourfolderRewriteCond %{SERVER_PORT} !^443$#RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$...

07月04日

微信小程序 社群团购接龙V16.9.0 小程序前端+后端

发布 : | 分类 : 创享工作 | 评论 : 0人 | 浏览 : 227次

微信小程序 社群团购接龙V16.9.0 小程序前端+后端更新动态:1、优化社区团购首次进入自主选小区的功能2、增加活动商品下架,购物车内自动清空改商品信息功能3、优化首页分类切换商品显示问题4、后台订单管理增加按优惠券搜索功能社群团购接龙系统一个页面完成下单操作商用级由实操演变过来秉承去中心化理念不做流量分发为代理、卖家提供便捷、高效的下单工具大平台时代红利已过!抓住去中心化商城机会!查佣金发布商品超级方便做过团购接龙的人都知道每天整理订单超繁琐用了社群团购系统处理1000+订单,分分钟!htt...

06月22日

顶点网topide.com解压密码

发布 : | 分类 : 创享工作 | 评论 : 0人 | 浏览 : 288次

密码管理左侧中间图标点击登陆:kkksssi    akkksssi关于顶点网发布的文件解压缩密码说明【2019年11月15日更新】本站2019年11月5日起发布的压缩文件解压密码为6YSZ6KeG6L2s6L295LiN55WZ5Ye65aSE55qE5Lq6微信群接龙源码https://pan.baidu.com/share/init?surl=qbKyKHwaKVxKEcA4tD6SQA   6jtaEnglishPassword...

06月22日

ST STM32 烧录hex方法

发布 : | 分类 : 创享工作 | 评论 : 0人 | 浏览 : 230次

STM32 烧录hex方法J-Link驱动安装:1.电脑USB线连接到J-Link,win7等会自动提示安装完程序;2.打开我的电脑会出现一个多出的USB的U盘,将拷贝app内的文件(https://cloud.189.cn/t/zERVnyVVZNnq (访问码:esd8))复制过去后拔出USB,重新插入;3.重新插入后,硬件资源管理器的J-Link会显示黄色感叹号,表示驱动不正常;4.安装驱动 复制app文件重上电后的驱动V6.12_JLink_Windows.exe(https://clo...