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

你可能感兴趣的:(service,exe,注册,服务,休闲)