将bat⽂件或exe程序注册成windows服务
命令⾏使⽤sc命令.
关于sc命令的详解,请⾃⾏查看帮助(sc /?),在此只简单提及如何加⼊系统服务功能.
加⼊服务:
sc create ServiceName binPath= 路径 start= auto
(等号后⾯的空格必须)
删除服务:
sc delete ServiceName
例⼀:
将Tomcat加⼊到系统服务中:
sc create Tomcat binPath= F:/apache-tomcat/bin/startup.bat start= auto
将Tomcat服务删除:
sc delete Tomcat
注意:等号和值之间应该有⼀个空格
例⼆:
sc create MyService binPath= " /c start c:\a.exe" start= auto displayname= "AutoStartOracle Services"
附: sc命令详解——
SC命令详解(⼀个很有⽤的command)
作为⼀个命令⾏⼯具,SC.exe可以⽤来测试你⾃⼰的系统,你可以设置⼀个批处理⽂件来使⽤不同的参数调⽤ SC.exe来控制服务。⼀.SC使⽤这样的语法:
1. SC [Servername] command Servicename [Optionname= Optionvalues]
2. SC [command]
这⾥使⽤第⼀种语法使⽤SC,使⽤第⼆种语法显⽰帮助。
下⾯介绍各种参数。
Servername
可选择:可以使⽤双斜线,如,也可以是来操作远程计算机。如果在本地计算机上操作
就不⽤添加任何参数。
Command
苏东坡的故事安踏服装专卖店下⾯列出SC可以使⽤的命令。
config----改变⼀个服务的配置。(长久的)
continue--对⼀个服务送出⼀个继续控制的要求。
control----对⼀个服务送出⼀个控制。
create----创建⼀个服务。(增加到注册表中)
delete----删除⼀个服务。(从注册表中删除)
EnumDepend--列举服务的从属关系。
GetDisplayName--获得⼀个服务的显⽰名称。
GetKeyName--获得⼀个服务的服务键名。
interrogate--对⼀个服务送出⼀个询问控制要求。
pause----对⼀个服务送出⼀个暂停控制要求。
qc----询问⼀个服务的配置。
query----询问⼀个服务的状态,也可以列举服务的状态类型。
start----启动⼀个服务。
stop----对⼀个服务送出⼀个停⽌的要求。
Servicename
在注册表中为service key制定的名称。注意这个名称是不同于显⽰名称的(这个名称可以⽤net start和服务控
制⾯板看到),⽽SC是使⽤服务键名来鉴别服务的。
lcd屏Optionname
这个optionname和optionvalues参数允许你指定操作命令参数的名称和数值。注意,这⼀点很重要在操作名称和等
号之间是没有空格的。⼀开始我不知道,结果………………,⽐如,start= optionvalues,这个很重要。
optionvalues可以是0,1,或者是更多的操作参数名称和数值对。
如果你想要看每个命令的可以⽤的optionvalues,你可以使⽤sc command这样的格式。这会为你提供详细的帮助。Optionvalues
为optionname的参数的名称指定它的数值。有效数值范围常常限制于哪⼀个参数的optionname。如果要列表请⽤
仓鼠sc command来询问每个命令。
Comments
很多的命令需要管理员权限,所以我想说,在你操作这些东西的时候最好是管理员。呵呵!
当你键⼊SC⽽不带任何参数时,SC.exe会显⽰帮助信息和可⽤的命令。当你键⼊SC紧跟着命令名称时,你可以得
到⼀个有关这个命令的详细列表。⽐如,键⼊sc create可以得到和create有关的列表。
但是除了⼀个命令,sc query,这会导出该系统中当前正在运⾏的所有服务和驱动程序的状态。
当你使⽤start命令时,你可以传递⼀些参数(arguments)给服务的主函数,但是不是给服务进程的主函数。
⼆.SC create
这个命令可以在注册表和服务控制管理数据库建⽴⼀个⼊⼝。
sc [servername] create Servicename [Optionname= Optionvalues]
这⾥的servername,servicename,optionname,optionvalues和上⾯的⼀样,这⾥就不多说了。这⾥我们详细说
明⼀下optionname和optionvalues。
Optionname--Optionvalues
描述
type=----own, share, interact, kernel, filesys
关于建⽴服务的类型,选项值包括驱动程序使⽤的类型,默认是share。
start=----boot, sys tem, auto, demand, disabled
关于启动服务的类型,选项值包括驱动程序使⽤的类型,默认是demand(⼿动)。
error=----normal, severe, critical, ignore
当服务在导⼊失败错误的严重性,默认是normal。
binPath=--(string)
服务⼆进制⽂件的路径名,这⾥没有默认值,这个字符串是必须设置的。
group=----(string)
这个服务属于的组,这个组的列表保存在注册表中的ServiceGroupOrder下。默认是nothing。
tag=----(string)
如果这个字符串被设置为yes,sc可以从CreateService call中得到⼀个tagId。然⽽,SC并不显⽰这个标签,所
以使⽤这个没有多少意义。默认是nothing
depend=----(space separated string)有空格的字符串。
在这个服务启动前必须启动的服务的名称或者是组。
obj=----(string)
账号运⾏使⽤的名称,也可以说是登陆⾝份。默认是localsys tem
Displayname=--(string)
⼀个为在⽤户界⾯程序中鉴别各个服务使⽤的字符串。
password=--(string)
⼀个密码,如果⼀个不同于localsystem的账号使⽤时需要使⽤这个。
Optionvalues
Optionname参数名称的数值列表。参考optionname。当我们输⼊⼀个字符串时,如果输⼊⼀个空的引⽤这意味着
⼀个空的字符串将被导⼊。
Comments
The SC CREATE command perFORMs the operations of the CreateService API function.
这个sc create命令执⾏CreateService API函数的操作。详细请见CreateService。
例⼦1
下⾯这个例⼦在计算机上建⽴叫“mirror”的服务建⽴的⼀个注册表登记,是⾃动运⾏服务,从属于TDI组和NetBios服务。
C:\WINDOWS\system32>sc create mirror binPath= "D:\Ftp\新建⽂件夹\" type= own start= auto
[SC] CreateService SUCCESS
重启后⽣效
例⼦2 删除Mirror服务
C:\WINDOWS\system32>sc delete mirror binPath= "D:\Ftp\新建⽂件夹\" type= own start= auto
[SC] DeleteService SUCCESS
三. SC QC
这个SC QC“询问配置”命令可以列出⼀个服务的配置信息和QUERY_SERVICE_CONFIG结构。
语法1
sc [Servername] qc Servicename [Buffersize]
Parameters
servername和servicename前⾯已经介绍过了,这⾥不再多说。
Buffersize,可选择的,列出缓冲区的尺⼨。
Comments
SC QC命令显⽰了QUERY_SERVICE_CONFIG结构的内容。
以下是QUERY_SERVICE_CONFIG相应的区域。
TYPE------dwServiceType
START_TYPE----dwStartType
ERROR_CONTROL----dwErrorControl
BINARY_PATH_NAME--lpBinaryPathName
LOAD_ORDER_GROUP--lpLoadOrderGroup
TAG------dwTagId
DISPLAY_NAME----lpDisplayName
DEPENDENCIES----lpDependencies
SERVICE_START_NAME--lpServiceStartName
例1
下⾯这个例⼦询问了在上⾯例⼦中建⽴的“mirror”服务的配置:
sc mirror
四.SC QUERY SC QUERY命令可以获得服务的信息。语法: sc [Servername] query { Servicename | ptionname= } 参
数: servername, servicename, optionname, optionvalues不在解释。只谈⼀下这个命令提供的数值。 Optionname--
Optionvalues Description type=----driver, service, all 列举服务的类型,默认是service state=----active, inactive, all 列举服务的状态,默认是active bufsize=--(numeric values) 列举缓冲区的尺⼨,默认是1024 bytes ri=----(numeric values) 但开始列举时,恢复指针的数字,默认是
0 Optionvalues 同上。 Comments
SC QUERY命令可以显⽰SERVICE_STATUS结构的内容。
下⾯是SERVICE_STATUS结构相应的信息:
TYPE------dwServiceType
STATE------dwCurrentState, dwControlsAccepted
WIN32_EXIT_CODE----dwWin32ExitCode
SERVICE_EXIT_CODE--dwServiceSpecificExitCode
CHECKPOINT----dwCheckPoint
WAIT_HINT----dwWaitHint
在启动计算机后,使⽤SC QUERY命令会告诉你是否,或者不是⼀个启动服务的尝试。如果这个服务成功启动,WIN32_EXIT_CODE区间会将会包含⼀个0,当尝试不成功时,当它意识到这个服务不能够启动时,这个区间也会提供⼀个退出码给服务。
查询“mirror'服务状态,键⼊:
sc query mirror
显⽰⼀下信息:
SERVICE_NAME: mirror
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
最新个性网名WAIT_HINT : 0x0
注意,这⾥存在⼀个给这个服务的退出码,即使这个服务部不在运⾏,键⼊net helpmsg 1077,将会得到对1077错误信息的说明:上次启动之后,仍未尝试引导服务。
所以,这⾥我想说⼀句,希望⼤家可以活⽤net helpmsg,这会对你的学习有很⼤的帮助。
下⾯在对SC query的命令在说明⼀下:
北国の春列举活动服务和驱动程序状态,使⽤以下命令:
sc query
显⽰messenger服务,使⽤以下命令:
sc query messenger
只列举活动的驱动程序,使⽤以下命令:
sc query type= driver
列举Win32服务,使⽤以下命令:
sc query type= service
列举所有的服务和驱动程序,使⽤以下命令:
sc query state= all
⽤50 byte的缓冲区来进⾏列举,使⽤以下命令:
sc query bufsize= 50
在恢复列举时使⽤index=14,使⽤以下命令:
sc query ri=14
列举所有的交互式服务,使⽤以下命令:
sc query type= service type= interact
五、sc命令启动已经禁⽤的服务,例如:启动telnet服务
sc config tlntsvr start= auto
net start tlntsvr
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论