C#windows服务开发及脚本注册详解

一  Windows服务的注册方式

                  (1) SC命令注册方式

                              

      命令格式:sc [servername] create Servicename [Optionname= Optionvalues]           

        

  servername

      可选,可以使用双斜线,如\\\\myserver,也可以是\\\\192.168.0.1来操作远程计算机。如果在本地计算机上操作就不用添加任何参数。

   Servicename

      在注册表中为service key制定的名称。注意这个名称是不同于显示名称的(这个名称可以用net start和服务控制面板看到),而SC是使用服务键名来鉴别服务的。

  Optionname 

        这个optionname和optionvalues参数允许你指定操作命令参数的名称和数值。注意,这一点很重要在操作名称和等号之间是没有空格的。

        如果你想要看每个命令的可以用的optionvalues,你可以使用sc command这样的格式。这会为你提供详细的帮助。

  Optionvalues

        为optionname的参数的名称指定它的数值。有效数值范围常常限制于哪一个参数的optionname。如果要列表请用sc command来询问每个命令。

 

     

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)

一个密码,如果一个不同于localsys tem的账号使用时需要使用这个。

Optionvalues

    Optionname参数名称的数值列表。参考optionname。当我们输入一个字符串时,如果输入一个空的引用这意味着一个空的字符串将被导入。

 

需要注意的是:

1. 在option= xxxxx格式中,“=”号和后面的内容一定要有空格,如depend=  Tcpip

2. 如果命令中的需要进行双引号的嵌套,使用反斜杠加引号 " \" " 来进行转义处理。

 

示例:

sc create svnservice binpath= "\"D:\Servers\Subversion\bin\svnserve.exe\" --service -r E:\SVN\repository" displayname= "SVNService" depend= Tcpip start= auto  

使用SC命令删除windows服务

    sc delete 从注册表中删除服务子项。如果服务正在运行或者另一个进程有一个该服务的打开句柄,那么此服务将标记为删除。

    格式:sc [ServerName] delete [ServiceName] 

    停止服务

    sc stop ServiceName

posted @ 2018-08-11 17:39  辣根弟弟  阅读(269)  评论(0编辑  收藏  举报