批处理版的SC
作者:netpatch
来源:邪恶八进制 中国
说明:
批处版——SC
首先要感谢zzzEVAzzz,这个批处程序就是根据他发布的《Do All in Cmd Shell》文中的资料编写而成!
原理就是根据INF文件的功能(关于inf文件的详细信息,可以参考DDK帮助文档。)加以自动化编写而成!
难度很低,偶只用了十来分钟就编写出了这个批处程序。(高手看了不要笑哦……)
具体用法:
安装服务语法为:
np 服务名 /a 服务显示名称 服务描述 启动类型 要添加成服务的程序地址 /s
例子:
例如我要安装一个名为test的服务,其服务的显示名为:This is test 服务描述为:experimentation
要添加为服务的程序路径为c:\winnt\system32\test.exe 启动类型为:自动 并且安装后立即启动
首先把test.exe copy到c:\winnt\system32\
然后执行:
np test /a "This is test" experimentation 2 c:\winnt\system32\test.exe /s
执行后就会自动把test.exe安装为服务并立即启动!
卸载服务语法:
例如要卸载的服务名为 test的服务
则:
np text /x
回车后即可
注意事项:程序默认为只安装不立即启动!除非你在后面加上 /s 参数才会安装后立即启动!
请不要用此程序做非法之用!否则后果全部由使用者负责!
欢迎转载!
若要转载,请保持内容完整!谢谢!
附:批处理内容
_content>@echo off
cls
color f2
:go
if "%1"=="" goto use
if "%2"=="" goto use
if "%2"=="/a" goto az
if "%2"=="/x" goto xz
:az
if "%5"=="" goto use
if "%6"=="" goto use
echo [Version] >c:\az.inf
echo Signature="$WINDOWS NT$" >>c:\az.inf
echo [DefaultInstall.Services] >>c:\az.inf
echo AddService=%1,,My_AddService_Name >>c:\az.inf
echo [My_AddService_Name] >>c:\az.inf
echo DisplayName=%3 >>c:\az.inf
echo Description=%4 >>c:\az.inf
echo ServiceType=0x10 >>c:\az.inf
echo StartType=%5 >>c:\az.inf
echo ErrorControl=0 >>c:\az.inf
echo ServiceBinary=%6 >>c:\az.inf
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\az.inf
del c:\az.inf
if "%7"=="" goto exit
if "%7"=="/s" net start %1
goto exit
:xz
net start|find "%1" >nul&&net stop %1
echo [Version] >c:\xz.inf
echo Signature="$WINDOWS NT$" >>c:\xz.inf
echo [DefaultInstall.Services] >>c:\xz.inf
echo DelService=%1 >>c:\xz.inf
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\xz.inf
del c:\xz.inf
goto exit
:use
echo ******************************************************************************
echo ** 安装服务批处程序 **
echo ** **
echo ** 安装例子: **
echo ** **
echo ** np 服务名 /a 服务显示名称 服务描述 启动类型 要添加成服务的程序地址 **
echo ** 启动类型:0 系统引导时加载,1 OS初始化时加载 **
echo ** 2 由SCM(服务控制管理器)自动启动,3 手动启动,4 禁用。 **
echo ** **
echo ** 卸载例子: **
echo ** **
echo ** np 服务名 /x **
echo ** **
echo ** build by NetPatch (N/P) QQ:251592982 **
echo ** 2005-4-07 **
echo ******************************************************************************
cmd /k
:exit