SC命令

描述:
        SC 是用来与服务控制管理器和服务进行通信
        的命令行程序。
用法:
        sc <server> [command] [service name] <option1> <option2>...


        <server> 选项的格式为 "\ServerName"
        可通过键入以下命令获取有关命令的更多帮助: "sc [command]"
        命令:
          query-----------查询服务的状态,
                          或枚举服务类型的状态。
          queryex---------查询服务的扩展状态,
                          或枚举服务类型的状态。
          start-----------启动服务。
          pause-----------向服务发送 PAUSE 控制请求。
          interrogate-----向服务发送 INTERROGATE 控制请求。
          continue--------向服务发送 CONTINUE 控制请求。
          stop------------向服务发送 STOP 请求。
          config----------更改服务的配置(永久)。
          description-----更改服务的描述。
          failure---------更改失败时服务执行的操作。
          failureflag-----更改服务的失败操作标志。
          sidtype---------更改服务的服务 SID 类型。
          privs-----------更改服务的所需特权。
          managedaccount--更改服务以将服务帐户密码
                          标记为由 LSA 管理。
          qc--------------查询服务的配置信息。
          qdescription----查询服务的描述。
          qfailure--------查询失败时服务执行的操作。
          qfailureflag----查询服务的失败操作标志。
          qsidtype--------查询服务的服务 SID 类型。
          qprivs----------查询服务的所需特权。
          qtriggerinfo----查询服务的触发器参数。
          qpreferrednode--查询服务的首选 NUMA 节点。
          qmanagedaccount-查询服务是否将帐户
                          与 LSA 管理的密码结合使用。
          qprotection-----查询服务的进程保护级别。
          delete----------(从注册表中)删除服务。
          create----------创建服务(并将其添加到注册表中)。
          control---------向服务发送控制。
          sdshow----------显示服务的安全描述符。
          sdset-----------设置服务的安全描述符。
          showsid---------显示与任意名称对应的服务 SID 字符串。
          triggerinfo-----配置服务的触发器参数。
          preferrednode---设置服务的首选 NUMA 节点。
          GetDisplayName--获取服务的 DisplayName。
          GetKeyName------获取服务的 ServiceKeyName。
          EnumDepend------枚举服务依赖关系。

        以下命令不需要服务名称:
        sc <server> <command> <option>
          boot------------(ok | bad)指示是否应将上一次启动另存为
                          最近一次已知的正确启动配置
          Lock------------锁定服务数据库
          QueryLock-------查询 SCManager 数据库的 LockStatus
示例:
        sc start MyService


QUERY 和 QUERYEX 选项:
        如果查询命令带服务名称,将返回
        该服务的状态。其他选项不适合这种
        情况。如果查询命令不带参数或
        带下列选项之一,将枚举此服务。
    type=    要枚举的服务的类型(driver, service, userservice, all)
             (默认 = service)
    state=   要枚举的服务的状态 (inactive, all)
             (默认 = active)
    bufsize= 枚举缓冲区的大小(以字节计)
             (默认 = 4096)
    ri=      开始枚举的恢复索引号
             (默认 = 0)
    group=   要枚举的服务组
             (默认 = all groups)

语法示例
sc query                - 枚举活动服务和驱动程序的状态
sc query eventlog       - 显示 eventlog 服务的状态
sc queryex eventlog     - 显示 eventlog 服务的扩展状态
sc query type= driver   - 仅枚举活动驱动程序
sc query type= service  - 仅枚举 Win32 服务
sc query state= all     - 枚举所有服务和驱动程序
sc query bufsize= 50    - 枚举缓冲区为 50 字节
sc query ri= 14         - 枚举时恢复索引 = 14
sc queryex group= ""    - 枚举不在组内的活动服务
sc query type= interact - 枚举所有不活动服务
sc query type= driver group= NDIS     - 枚举所有 NDIS 驱动程序


windows下sc create命令行添加/创建/修改服务

windows下sc create命令行添加/创建/修改服务
sc create BITS binpath= "C:WINDOWSsystem32svchost.exe -k netsvcs" type= share start= auto displayname= "Background Intelligent Transfer Service" depend= RpcSs/EventSystem 
修改描述: 
sc description BITS "利用空闲的网络带宽在后台传输文件。如果服务被停用,例如 Windows Update 和 MSN Explorer 的功能将无法自动下载程序和其他信息。如果此服务被禁用,任何依赖它的服务如果没有容错技术以直接通过 IE 传输文件,一旦 BITS 被禁用,就可能无法传输文件。" 

添加服务: 
sc create PolicyAgent binpath= "C:WINDOWSsystem32lsass.exe" type= share start= auto displayname= "IPSEC Services" depend= RPCSS/Tcpip/IPSec 
修改描述: 
sc description PolicyAgent "提供 TCP/IP 网络上客户端和服务器之间端对端的安全。如果此服务被停用,网络上客户端和服务器之间的 TCP/IP 安全将不稳定。如果此服务被禁用,任何依赖它的服务将无法启动。" 

SC命令的更多用法请在查看help sc 

(注册表修改前请做好备份), 

SvcHost共享服务的特别之处:或许重启后还需要到注册表位置:[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSvcHost],查看"C:WINDOWSsystem32svchost.exe -k netsvcs"以红色字为名的键(这里以netsvcs为例),键值里是否定义有sc create BITS蓝色字的服务(这里以BITS为例),如果没有就在键值把服务名(这里以BITS为例)添加上去,再重启一次。 
  
sc [ServerNamecreate [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interact type= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式(“\myserver”)。要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
type= {own | share | kernel | filesys | rec | adapt | interact type= {own | share}}
指定该服务类型。默认类型为 type= own


描述

own
服务以其自身的进程运行。不与其他服务共享可执行文件。这是默认设置。

share
服务作为共享进程运行。它与其他服务共享一可执行文件。

kernel
驱动程序。

filesys
文件系统驱动程序。

rec
文件系统识别驱动器(标识在计算机上使用的文件系统)。

interact
服务可以与桌面交互作用,接收用户的输入。交互服务必须在 LocalSystem 帐户下运行。该类型必须与 type= own 或 type= shared(例如,type= interact type= own)结合使用。单独使用 type= interact 将会产生一个无效参数错误。

start= {boot | system | auto | demand | disabled}
指定服务的启动类型。默认的启动类型是 start= demand

boot
由启动引导程序加载的设备驱动器。

system
在核心初始化过程中启动的设备驱动器。

auto
每次计算机重新启动时,甚至没有人登录计算机时,都能自动开始的服务。

demand
必须手动启动的服务。如果没有指定 start=,这就默认值。

disabled
不能启动的服务。要启动一个禁用的服务,把启动类型更改为其他值。

error= {normal | severe | critical | ignore}
如果在启动中,服务器启动失败,则指定错误的严重性。默认设置为 ascii

normal
将记录错误,并且显示消息对话框,通知用户服务启动失败。启动将继续。这是默认设置。

severe
记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。这可能导致计算机能够重新启动,但服务器却仍然不能运行。

critical
记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。如果上次已知正确的配置失败,启动也将失败,启动过程就会以“蓝屏”错误而停止。

ignore
错误已记录,启动继续。记录错误超出在事件日志的范围,不再给用户作出提示。

binpath= BinaryPathName
指定一个进入服务二进制文件的路径。binpath= 没有默认值,必须要给出此字符串。
group= LoadOrderGroup
指定一个该服务为其中成员的组名。组列表存储在 HKLMSystemCurrentControlSetControlServiceGroupOrder 子项的注册表中。默认设置为空值。
tag= {yes | no}
指定是否在“CreateService”调用中获得 TagID。标记仅用于根启动或系统启动驱动程序。
depend= dependencies
指定必须要在此项服务之前启动的服务名或组名。名称以斜线 (/) 分离开来。
obj= {AccountName | ObjectName}
指定一个将运行的服务的帐户名,或指定一个将会运行的驱动程序的 Windows 驱动程序对象名。
displayname= DisplayName
指定被用户界面程序用来标识服务的友好名称。
password:password
指定一个密码。如果使用的不是 LocalSystem 的帐户,密码是必需的。
/?
在命令提示符下显示帮助。

注释

  • 如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则操作会失败。 






原文地址:https://www.cnblogs.com/Full--Stack/p/8041397.html