欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

exe注册为service服务

发布时间:2025/6/16 编程问答 28 豆豆
生活随笔 收集整理的这篇文章主要介绍了 exe注册为service服务 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
本来这篇blog是“系统垃圾清理批处理”方面的,后面的批处理是我在工作中经常用的,经过了实践检验,不会引起系统问题,平时帮公司同事、朋友等清理系统垃圾就用下面的后面批处理。 这篇blog太简单了,所以想加入标题的内容,以充实内容。 将exe文件注册为service服务项,网上的方法大致为三种。如果是批处理或脚本建议用组策略的启动 放入处理。 第一种方式:用批处理和两个工具 就是用Windows 2000 Resource Kit Tools中两个小程序Instsrv.exe和Srvany.exe来生成service项。所有文件在附件 我的测试如下: test.exe执行的效果和如下批处理相同,必须所有文件都在C:\bin 下,我为了简单理解所以固定目录。 @echo off
if exist c:\heliy.txt goto appendinfo echo "no exist file heliy.txt in C partition" >> c:\heliy.txt
exit :appendinfo
@echo ""
@echo ""
@echo "===============================================================" >> c:\heliy.txt
echo "Had exist file name heliy, OK,!!!" >> c:\heliy.txt
findstr /C:"Had exist" c:\heliy.txt | find /C "Had" >> c:\heliy.txt
exit

注册成服务的bat批处理如下: REM heliy learn from Internat @echo off REM 设置服务名称
set service_name=testexe2 REM 设置服务描述
set service_description="heliy test this way that regesity exe of file to service item" REM 设置服务程序路径,路径为\\ ,不是\
set exe_path=c:\\bin\\test.exe REM 设置服务的启动方式 auto:自动 demand:手动 disabled:禁用
set strt=auto REM ========================以下部分勿随意修改================== REM 生成的临时注册文件名
set reg_file=temp_server.reg net stop %service_name% 2>nul REM 这两行不要改动
c:\bin\instsrv.exe %service_name% remove 2>nul
c:\bin\instsrv.exe %service_name% c:\bin\srvany.exe 2>nul REM 设置服务的启动方式 auto:自动 demand:手动 disabled:禁用
sc config %service_name% start= %strt%
sc description %service_name% "%service_description%" echo 生成注册表文件...
echo Windows Registry Editor Version 5.00 >> c:\bin\%reg_file%
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%service_name%\Parameters] >> c:\bin\%reg_file%
echo "Application"="%exe_path%" >> c:\bin\%reg_file% echo 导入注册表文件...
c:\bin\%reg_file% net start %service_name% @echo 删除临时导入的注册表文件
del /F c:\bin\%reg_file% @echo ===========================完成============================
@pause 以上的批处理是我测试通过的,instsrv.exe 的help如下: 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 注册后如图:

 

第二种方法:第三方工具 应用此工具,需要对exe文件非常熟悉,工具在附件2 第三种方法:注册表 使用注册表的方法是对exe文件很熟且exe文件简单,比如依赖服务、调用dll文件、启动参数等都比较简单的情况下,一般是先根据登录身份 导出一个service项,在根据exe的需要,修改、删除、添加一些键值。 注册表的路径: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services] 注意保留Enum项 启动的类型: “Start”,DWORD值,值为2表示自动运行,值为3表示手动运行,值为4表示禁止 以下是本篇blog的原内容,是清理垃圾的批处理: ================================================================= @echo off 
@echo 正在清除系统垃圾文件,请稍等...... 
del /f /s /q %systemdrive%\*.tmp 
del /f /s /q %systemdrive%\*._mp 
del /f /s /q %systemdrive%\*.log 
del /f /s /q %systemdrive%\*.gid 
del /f /s /q %systemdrive%\*.chk 
del /f /s /q %systemdrive%\*.old 
del /f /s /q %systemdrive%\recycled\*.* 
del /f /s /q %windir%\*.bak 
del /f /s /q %windir%\prefetch\*.* 
rd /s /q %windir%\temp & md %windir%\temp 
del /f /q %userprofile%\cookies\*.* 
del /f /q %userprofile%\recent\*.* 
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*" 
del /f /s /q "%userprofile%\Local Settings\Temp\*.*" 
del /f /s /q "%userprofile%\recent\*.*" 
del /f /s /q %systemroot%\SoftwareDistribution\download\*.*
del /f /s /q %systemroot%\Installer\*.msp
del /f /s /q %systemroot%\Installer\*.msi
del /f /s /q %systemroot%\Installer\*.tmp @echo 清除系统垃圾完成! --新年快乐--
@echo. & pause

      本文转自fuhaixiong 51CTO博客,原文链接:http://blog.51cto.com/heliy/170930,如需转载请自行联系原作者



总结

以上是生活随笔为你收集整理的exe注册为service服务的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。