ukula 发表于 2018-6-27 06:02:01

修改windows service的启动类型


[*]描述:
[*]      在注册表和服务数据库中修改服务项。
[*]用法:
[*]      sc <server> config <option1> <option2>...
[*]
[*]选项:
[*]注意: 选项名称包括等号。
[*]      等号和值之间需要一个空格。
[*] type= <own|share|interact|kernel|filesys|rec|adapt>
[*] start= <boot|system|auto|demand|disabled|delayed-auto>
[*] error= <normal|severe|critical|ignore>
[*] binPath= <BinaryPathName>
[*] group= <LoadOrderGroup>
[*] tag= <yes|no>
[*] depend= <依存关系(以 / (斜杠) 分隔)>
[*] obj= <AccountName|ObjectName>
[*] DisplayName= <显示名称>
[*] password= <密码>
  

  坑爹之处在于等于号后面有空格。
  
例如有个服务叫myService,想变更为手动启动,指令如下:
  


[*]C:\Windows\system32>sc config myService start= demand    <--请注意!=后面有个空格!!!
[*] ChangeServiceConfig 成功
  

  查看sc帮助信息如下所示:
  


[*]C:\Windows\system32>help sc
[*]
[*]错误:未知命令
[*]
[*]描述:
[*]      SC 是用于与服务控制管理器和服务进行通信的命令行程序。
[*]用法:
[*]      sc <server> <option1> <option2>...
[*]
[*]
[*]      选项 <server> 的格式为 &quot;\\ServerName&quot;
[*]      键入 &quot;sc &quot; 可以获得有关命令的进一步帮助
[*]      命令:
[*]          query-----------查询服务的状态,
[*]                        或枚举服务类型的状态。
[*]          queryex---------查询服务的扩展状态,
[*]                        或枚举服务类型的状态。
[*]          start-----------启动服务。
[*]          pause-----------向服务发送 PAUSE 控制请求。
[*]          interrogate-----向服务发送 INTERROGATE 控制请求。
[*]          continue--------向服务发送 CONTINUE 控制请求。
[*]          stop------------向服务发送 STOP 请求。
[*]          config----------更改服务的配置(永久)。
[*]          description-----更改服务的描述。
[*]          failure---------更改服务失败时执行的操作。
[*]          failureflag-----更改服务的失败操作标志。
[*]          sidtype---------更改服务的服务 SID 类型。
[*]          privs-----------更改服务的所需权限。
[*]          qc--------------查询服务的配置信息。
[*]          qdescription----查询服务的描述。
[*]          qfailure--------查询失败时服务执行的操作。
[*]          qfailureflag----查询服务的失败操作标志。
[*]          qsidtype--------查询服务的服务 SID 类型。
[*]          qprivs----------查询服务的所需权限。
[*]          qtriggerinfo----查询服务的触发器参数。
[*]          qpreferrednode--查询首选的服务 NUMA 节点。
[*]          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 命令的帮助? [ y | n ]:
[*]y
[*]
[*]QUERY 和 QUERYEX 选项:
[*]      如果查询命令带服务名称,将返回
[*]      该服务的状态。其他选项不适合这种
[*]      情况。如果查询命令不带参数或
[*]      带下列选项之一,将枚举此服务。
[*]    type=    要枚举的服务的类型(driver, service, 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= &quot;&quot;    - 枚举不在组内的活动服务
[*]sc query type= interact - 枚举所有不活动服务
[*]sc query type= driver group= NDIS   - 枚举所有 NDIS 驱动程序
  
页: [1]
查看完整版本: 修改windows service的启动类型