批处理脚本命令行方式关闭Windows服务

对于一些不常用的Windows Services,可以通过设置其启动类型为"禁用"而将其关闭。这种关闭方式是长期性的,电脑重启之后仍然起作用。

有时候希望在批处理脚本里通过命令行方式关闭/重启某个服务,则用到下面的方法:

关闭:sc stop service_name

开启:sc start service_name

sc.exe是系统命令,在Win7系统里存在于系统目录C:\Windows\System32\或者C:\Windows\SysWOW64\中。其语法如下:

DESCRIPTION:
        SC is a command line program used for communicating with the Service Control Manager and services.
USAGE:
        sc <server> [command] [service name] <option1> <option2>...


        The option <server> has the form "\\ServerName"
        Further help on commands can be obtained by typing: "sc [command]"
        Commands:
          query-----------Queries the status for a service, or enumerates the status for types of services.
          queryex---------Queries the extended status for a service, or enumerates the status for types of services.
          start-----------Starts a service.
          pause-----------Sends a PAUSE control request to a service.
          interrogate-----Sends an INTERROGATE control request to a service.
          continue--------Sends a CONTINUE control request to a service.
          stop------------Sends a STOP request to a service.
          config----------Changes the configuration of a service (persistent).
          description-----Changes the description of a service.
          failure---------Changes the actions taken by a service upon failure.
          failureflag-----Changes the failure actions flag of a service.
          sidtype---------Changes the service SID type of a service.
          privs-----------Changes the required privileges of a service.
          qc--------------Queries the configuration information for a service.
          qdescription----Queries the description for a service.
          qfailure--------Queries the actions taken by a service upon failure.
          qfailureflag----Queries the failure actions flag of a service.
          qsidtype--------Queries the service SID type of a service.
          qprivs----------Queries the required privileges of a service.
          qtriggerinfo----Queries the trigger parameters of a service.
          qpreferrednode--Queries the preferred NUMA node of a service.
          delete----------Deletes a service (from the registry).
          create----------Creates a service. (adds it to the registry).
          control---------Sends a control to a service.
          sdshow----------Displays a service's security descriptor.
          sdset-----------Sets a service's security descriptor.
          showsid---------Displays the service SID string corresponding to an arbitrary name.
          triggerinfo-----Configures the trigger parameters of a service.
          preferrednode---Sets the preferred NUMA node of a service.
          GetDisplayName--Gets the DisplayName for a service.
          GetKeyName------Gets the ServiceKeyName for a service.
          EnumDepend------Enumerates Service Dependencies.

        The following commands don't require a service name:
        sc <server> <command> <option>
          boot------------(ok | bad) Indicates whether the last boot should be saved as the last-known-good boot configuration
          Lock------------Locks the Service Database
          QueryLock-------Queries the LockStatus for the SCManager Database
EXAMPLE:
        sc start MyService


QUERY and QUERYEX OPTIONS:
        If the query command is followed by a service name, the status for that service is returned.  Further options do not apply in this case.  If the query command is followed by nothing or one of the options listed below, the services are enumerated.
    type=    Type of services to enumerate (driver, service, all)
             (default = service)
    state=   State of services to enumerate (inactive, all)
             (default = active)
    bufsize= The size (in bytes) of the enumeration buffer
             (default = 4096)
    ri=      The resume index number at which to begin the enumeration
             (default = 0)
    group=   Service group to enumerate
             (default = all groups)

SYNTAX EXAMPLES
sc query                - Enumerates status for active services & drivers
sc query eventlog       - Displays status for the eventlog service
sc queryex eventlog     - Displays extended status for the eventlog service
sc query type= driver   - Enumerates only active drivers
sc query type= service  - Enumerates only Win32 services
sc query state= all     - Enumerates all services & drivers
sc query bufsize= 50    - Enumerates with a 50 byte buffer
sc query ri= 14         - Enumerates with resume index = 14
sc queryex group= ""    - Enumerates active services not in a group
sc query type= interact - Enumerates all interactive services
sc query type= driver group= NDIS     - Enumerates all NDIS drivers

 

Common tasks

Notes:

(1) service should always be the service's short name, not the display name.

     Doubleclick a service in the Services Control Panel applet (or services.msc) to find its short name, or use SC \\computer Query to list all services with their short name.

(2) The spaces following equal signs are mandatory; if a space is removed the command will fail.

Start a service

SC \\computer Start service_name

Stop a service

SC \\computer Stop service_name

Restart a service

SC \\computer Stop service_name
SC \\computer Start service_name

Make a service start automatically

SC \\computer Config service_name start= auto

Disable a service

SC \\computer Config service_name start= disabled

Change a service's display name

SC \\computer Config service_name DisplayName= "New display name"

Change a service's description

SC \\computer Description service_name "This is the service's new description"

Change a service's recovery settings

SC \\computer Failure service_name actions= restart/60000/restart/60000// reset= 120

This command will make a service restart after 1 minute (60000 milliseconds) on the first 2 failures, and take no action at further failures (to prevent infinite failing restarts, which might consume 100% CPU capacity); the failures counter will be reset after 2 minutes (120 seconds).

Ignore a service's failure to start at boot time

SC \\computer Config service_name error= ignore
posted @ 2013-09-02 15:17  josephchan  阅读(12593)  评论(0编辑  收藏  举报