SC命令详解

来源:互联网 发布:mui 电商源码下载 编辑:程序博客网 时间:2024/05/01 17:53

SC命令详解
SC命令是用来和NT服务控制器和服务进行通讯的命令行程序

介绍SC,SC QC,and SC QUERY SC使用这样的语法:
1. SC [Servername] command Servicename [Optionname= Optionvalues] 2. SC [command] 这里使用第一种语法使用SC,使用第二种语法显示帮助。 下面介绍各种参数。 Servername
可选择:可以使用双斜线,如////myserver,也可以是////192.168.0.1来操作远程计算机。如果在本地计算机上操作 就不用添加任何参数。 Command
下面列出SC可以使用的命令。 config----改变一个服务的配置。(长久的) continue--对一个服务送出一个继续控制的要求。 control----对一个服务送出一个控制。 create----创建一个服务。(增加到注册表中) delete----删除一个服务。(从注册表中删除) EnumDepend--列举服务的从属关系。 GetDisplayName--获得一个服务的显示名称。 GetKeyName--获得一个服务的服务键名。 interrogate--对一个服务送出一个询问控制要求。 pause----对一个服务送出一个暂停控制要求。 qc----询问一个服务的配置。 query----询问一个服务的状态,也可以列举服务的状态类型。 start----启动一个服务。 stop----对一个服务送出一个停止的要求。 Servicename
在注册表中为service key制定的名称。注意这个名称是不同于显示名称的(这个名称可以用net start和服务控 制面板看到),而SC是使用服务键名来鉴别服务的。 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
这个命令可以在注册表和服务控制管理数据库建立一个入口。 语法1
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)
一个密码,如果一个不同于localsys tem的账号使用时需要使用这个。 Optionvalues
Optionname参数名称的数值列表。参考optionname。当我们输入一个字符串时,如果输入一个空的引用这意味着 一个空的字符串将被导入。 Comments
The SC CREATE command perFORMs the operations of the CreateService API function.
这个sc create命令执行CreateService API函数的操作。详细请见CreateService。 例1
下面这个例子在一台叫做(////myserver)的计算机上为一个叫“NewService”的服务建立的一个注册表登记。
sc ////myserver create NewService binpath= c://winnt//sys tem32//NewServ.exe 按照默认,这个服务会建立一个WIN32_SHARE_PROCESS使用SERVICE_DEMAND_START启动方式。这将不会有任何从属 关系,也将会按照localsys tem安全上下关系来运行。 例2
下面这个例子将在本地计算机上,建立一个服务,它将会是一个自动运行服务,并且运行在他自己的进程上。它 从属于TDI组和NetBios服务上。注意,你必须在从属中间增加一个空格的引用。 sc create NewService binpath= c://winnt//sys tem32//NewServ.exe type= own
start= auto depend= /'+TDI Netbios/' 例3
服务开发者可以通过临时改变二进制路径(影像路径)的方式来将这个服务运行在内核调试器的上下关系中。下 面这个例子就可以让我们看到如何改变服务的配置。 sc config NewService binpath= /'ntsd -d c://winnt//sys tem32//Newserv.exe/'
这个例子会引起服务控制管理器调用ntsd.exe使用下例的参数字符串:
/'-d c://nt//sys tem32//NewServ.exe/' 当系统装入newserv.exe时ntsd将会转而打断调试器,所以断点可以被设置在服务代码里。 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 下面这个例子询问了在上面例子中建立的“NewService”服务的配置: sc ////myserver qc NewService sc显示下面的信息: SERVICE_NAME: NewService
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : c://winnt//sys tem32//NewServ.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : NewService
DEPENDENCIES :
SERVICE_START_NAME : Localsys tem NewService有能力和其他的服务共享一个进程。但是它不是自动启动的。二进制文件名是NewServ.exe。这个服务 不依靠与其它的的服务,而且运行在lcoalsys tem的安全上下关系中。这些都是调用QueryServiceStatus基本的返 回,如果还需要更多的细节届时,可以看看API函数文件。 SC QUERY SC QUERY命令可以获得服务的信息。 语法:
sc [Servername] query { Servicename | Optionname= Optionvalues... } 参数: servername, servicename, optionname, optionvalues不在解释。只谈一下这个命令提供的数值。 Optionname--Optionvalues
Description type=----driver, service, all
列举服务的类型,默认是service state=----active, inactive, all
列举服务的状态,默认是active bufsize=--(numeric values)
列举缓冲区

一、SC命令是用来和NT服务控制器和服务进行通讯的命令行程序
用法: sc <server> [command] [service name] <option1> <option2>...
1.server:格式为//ServerName,若省略此项,则默认是本地
2.command:命令 SC命令必须和其它命令结合使用。常用的有:query,qc,config,start,stop, pause,continue等
3.service name:服务名称,如tlntsvr(Telnet服务)、messenger(信使服务)等
4.option1 可选项
注:除sc query和sc queryex命令外,其他的均可通过在命令行输入sc command查看帮助。如键入sc config 则会显示sc config的帮助信息

二、常用命令

1.sc query
 
格式:sc query [service name]
功能:查看指定服务的运行状态。若省略服务名称,则会列举出所有活动的服务和驱动
常见的运行状态有:STOPPED(停止), START_PENDING(等待启动),RUNNING(正在运行)
如:sc query tlntsvr  //查看本地的Telnet服务的运行状态
显示结果:

SERVICE_NAME: tlntsvr
        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

2.sc qc

格式:sc qc service name
功能:查看指定服务的配置信息
服务 START_TYPE(启动类型)有:AUTO_START(自动启动),DEMAND_START(手动启动),DISABLED(禁用)
如:sc qc tlntsvr    //查看本地的Telnet服务的配置信息
显示结果:
[SC] GetServiceConfig SUCCESS

SERVICE_NAME: tlntsvr
        TYPE               : 10  WIN32_OWN_PROCESS
        START_TYPE         : 4   DISABLED
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:/WINDOWS/system32/tlntsvr.exe
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : Telnet
        DEPENDENCIES       : RPCSS
                           : TCPIP
                           : NTLMSSP
        SERVICE_START_NAME : LocalSystem

3.sc config

格式:sc <server> config [service name] <option1> <option2>...
功能:修改注册表和“服务控制管理器”数据库中服务项目的值
option中常用的为start属性(启动类型),常取值有auto(自动)、demand(手动)、disabled(禁用)
格式:sc config 服务名称 start= value
注意:value前有个空格

如:sc config tlntsvr start= auto     //配置Telnet服务为自动启动
    sc config tlntsvr start= demand   //配置Telnet服务为手动启动
    sc config tlntsvr start= disabled //禁用Telnet服务

4.sc start

格式:  sc <server> start [service name] <arg1> <arg2> ...
功能:启动正在运行的服务
此命令功能和net start差不多,但前提必须是服务正在运行
如:若Telnet服务已禁用,则
sc config tlntsvr start= auto    //先使服务运行
sc start tlntsvr                 //后启动服务
显示结果:

SERVICE_NAME: tlntsvr
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 3  STOP_PENDING
                                (STOPPABLE,PAUSABLE,ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
5.sc stop

格式:sc <server> stop [service name]
功能:向服务发送 STOP 控制请求
如:sc stop tlntsvr  //停止Telnet服务
显示结果:

SERVICE_NAME: tlntsvr
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 3  STOP_PENDING
                                (STOPPABLE,PAUSABLE,ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
6.sc pause

格式:sc <server> pause [service name]
功能:暂停一个服务
如:若Telnet服务已启动,则
sc pause tlntsvr
显示结果:

SERVICE_NAME: tlntsvr
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 7  PAUSED
                                (STOPPABLE,PAUSABLE,ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0
7.sc continue

格式:sc <server> continue [service name]
功能:继续一个暂停的服务
如:sc continue tlntsvr
显示结果:
SERVICE_NAME: tlntsvr
        TYPE               : 10  WIN32_OWN_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE,PAUSABLE,ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

原创粉丝点击