[转帖]SC 命令详解

sc,命令,详解 · 浏览次数 : 0

小编点评

## CreateService API函数的操作 **CreateService API函数**是用于在本地或远程计算机上创建服务的功能 API函数。该函数接收以下参数: * **binpath**: 服务的安装路径 * **type**: 服务类型,可取以下值:`ownstart=auto`、`auto`、`manual` * **depend**: 需要依赖的服务的名称,可多个服务名称以空格隔开 * **buffersize**: 服务启动前的缓冲区大小,默认值为1024字节 **示例:** **例1:在台机器上建立一个REG的登记** ```python # 创建服务 sc create NewService binpath= c:winntsys tem32NewServ.exe type= ownstart= auto depend= '+TDI Netbios' ``` **例2:创建一个自动运行的服务** ```python # 创建服务 sc create NewService binpath= c:winntsys tem32NewServ.exe type= ownstart= auto depend= '+TDI Netbios' ``` **例3:改变服务的配置** ```python # 创建服务 sc create NewService binpath= 'ntsd -d c:winntsys tem32NewServ.exe' ``` **其他参数:** * **state**: 服务状态,可取以下值:`all`、`active`、`inactive` * **buffersize**: 服务启动前的缓冲区大小,默认值为1024字节 * **flags**: 可选参数,包含服务启动的标志 **注意:** * CreateService API函数需要运行在本地计算机上。 * 服务的安装路径必须是有效的路径。 * 服务类型只能为`ownstart=auto`、`auto`或`manual`。 * 服务可以依赖多个服务,这些服务名称以空格隔开。

正文

http://blog.chinaunix.net/uid-13461264-id-2886987.html

 

 
 SC 命令详解
  SC 是用于与服务控制管理器通信的命令行程序。SC.exe可以用来测试你自己的系统,你可以设置一个批处理文件来使用不同的参数调用 ,用SC.exe来控制服务,如果你想看看服务器的启动和停止,如果你的服务进程里面有多个进程的话,可以保持一个进程继续运行另外一个则可以不运行,还可以寻找一下内存缺乏导致不完全清楚的证据。
一、 描述:
        SC 是用于与服务控制管理器通信的命令行程序。
    用法:
        sc [command] [service name] ...

        选项 的格式为 ""
        可以键入 "sc [command]"以获得命令的进一步帮助
        命令:
          query-----------查询服务的状态,
                          或枚举服务类型的状态。
          queryex---------查询服务的扩展状态,或枚举服务类型的状态。
          start-----------启动服务。
          pause-----------发送 PAUSE 控制请求到服务。
          interrogate-----发送 INTERROGATE 控制请求到服务。
          continue--------发送 CONTINUE 控制请求到服务。
          stop------------发送 STOP 请求到服务。
          config----------(永久地)更改服务的配置。
          description-----更改服务的描述。
          failure---------更改服务失败时所进行的操作。
          qc--------------查询服务的配置信息。
          qdescription----查询服务的描述。
          qfailure--------查询失败服务所进行的操作。
          delete----------(从注册表)删除服务。
          create----------创建服务(将其添加到注册表)。
          control---------发送控制到服务。
          sdshow----------显示服务的安全描述符。
          sdset-----------设置服务的安全描述符。
          GetDisplayName--获取服务的 DisplayName。
          GetKeyName------获取服务的 ServiceKeyName。
          EnumDepend------枚举服务的依存关系。
        下列命令不查询服务名称:
        sc
您想查阅 QUERY 和 QUERYEX 命令的帮助吗? [ y | n ]:
y
QUERY 和 QUERYEX 选项:
        如果查询命令带服务名称,将返回
        该服务的状态。其他选项不适合这种
        情况。如果查询命令不带参数或
        带下列选项之一,将枚举此服务。
    type=    要枚举的服务的类型(driver, service, all)
             默认 = service)
    state=   要枚举的服务的状态 (inactive, all)
             (默认 = active)\n"
    bufsize= 枚举缓冲区的大小(以字节计)
             (默认 = 4096)
    ri=      开始枚举的恢复索引号\n"
             (默认 = 0)
    group=   要枚举的服务组
             (默认 = all groups)
句法示例
sc query                - 枚举活动服务和驱动程序的状态
sc query messenger      - 显示信使服务的状态
sc queryex messenger    - 显示信使服务的扩展状态
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= service type= interact - 枚举所有不活动服务
sc query type= driver group= NDIS     - 枚举所有 NDIS 驱动程序
二、实例
  2.1  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
下面这个例子在一台叫做()的计算机上为一个叫“NewService”的服务建立的一个注册表登记。
sc create NewService binpath= c:winntsys tem32NewServ.exe

按照默认,这个服务会建立一个WIN32_SHARE_PROCESS使用SERVICE_DEMAND_START启动方式。这将不会有任何从属

关系,也将会按照localsys tem安全上下关系来运行。

例2
下面这个例子将在本地计算机上,建立一个服务,它将会是一个自动运行服务,并且运行在他自己的进程上。它

从属于TDI组和NetBios服务上。注意,你必须在从属中间增加一个空格的引用。

sc create NewService binpath= c:winntsys tem32NewServ.exe type= own
start= auto depend= '+TDI Netbios'

例3
服务开发者可以通过临时改变二进制路径(影像路径)的方式来将这个服务运行在内核调试器的上下关系中。下

面这个例子就可以让我们看到如何改变服务的配置。

sc config NewService binpath= 'ntsd -d c:winntsys tem32Newserv.exe'
这个例子会引起服务控制管理器调用ntsd.exe使用下例的参数字符串:
'-d c: tsys tem32NewServ.exe'

当系统装入newserv.exe时ntsd将会转而打断调试器,所以断点可以被设置

2.2

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 qc NewService

sc显示下面的信息:

SERVICE_NAME: NewService
TYPE : 20 WIN32_SHARE_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : c:winntsys tem32NewServ.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : NewService
DEPENDENCIES :
SERVICE_START_NAME : Localsys tem

NewService有能力和其他的服务共享一个进程。但是它不是自动启动的。二进制文件名是NewServ.exe。这个服务不依靠与其它的的服务,而且运行在lcoalsys tem的安全上下关系中。这些都是调用QueryServiceStatus基本的返回,如果还需要更多的细节届时,可以看看API函数文件。

2.3

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)
列举缓冲区的尺寸,默认是1024 bytes

ri=----(numeric values)
但开始列举时,恢复指针的数字,默认是0

Optionvalues
同上。

Comments

SC QUERY命令可以显示SERVICE_STATUS结构的内容。

下面是SERVICE_STATUS结构相应的信息:
TYPE------dwServiceType
STATE------dwCurrentState, dwControlsAccepted
WIN32_EXIT_CODE----dwWin32ExitCode
SERVICE_EXIT_CODE--dwServiceSpecificExitCode
CHECKPOINT----dwCheckPoint
WAIT_HINT----dwWaitHint

在启动计算机后,使用SC QUERY命令会告诉你是否,或者不是一个启动服务的尝试。如果这个服务成功启动,WIN32_EXIT_CODE区间会将会包含一个0,当尝试不成功时,当它意识到这个服务不能够启动时,这个区间也会提供一个退出码给服务。

例子

查询“NewService'服务状态,键入:

sc query NewService

显示一下信息:

SERVICE_NAME: NewService
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 1 STOPPED
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

注意,这里存在一个给这个服务的退出码,即使这个服务部不在运行,键入net helpmsg 1077,将会得到对1077错误信息的说明:上次启动之后,仍未尝试引导服务。所以,这里我想说一句,希望大家可以活用net helpmsg,这会对你的学习有很大的帮助。

下面在对SC query的命令在说明一下:

列举活动服务和驱动程序状态,使用以下命令:
sc query

显示messenger服务,使用以下命令:
sc query messenger

只列举活动的驱动程序,使用以下命令:
sc query type= driver

列举Win32服务,使用以下命令:
sc query type= service

列举所有的服务和驱动程序,使用以下命令:
sc query state= all

用50 byte的缓冲区来进行列举,使用以下命令:
sc query bufsize= 50

在恢复列举时使用index=14,使用以下命令:
sc query ri=14

列举所有的交互式服务,使用以下命令:
sc query type= service type= interact

与[转帖]SC 命令详解相似的内容:

[转帖]SC 命令详解

http://blog.chinaunix.net/uid-13461264-id-2886987.html SC 命令详解 SC 是用于与服务控制管理器通信的命令行程序。SC.exe可以用来测试你自己的系统,你可以设置一个批处理文件来使用不同的参数调用 ,用SC.exe来控制服务,如果你想看看服务

[转帖]SC命令详解

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!http://cnsendnet.taobao.com来自森大科技官方博客http://www.cnsendblog.com/index.php/?p=644php SC命令详解(一个颇有用的command)做为一个命令行工具,SC.exe能

[转帖]Windows的sc命令详解

https://www.codenong.com/cs106052166/ 命令帮助 在dos窗口输入sc即可 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515

[转帖]Linux下AWK、SED、GREP、FIND命令详解

https://www.jianshu.com/p/d54e0359db01 AWK AWK是一个优良的文本处理工具,Linux和Unix环境中现有的功能最强大的数据处理引擎之一。 语法 awk [选项参数] 'script' var=value file(s) 或 awk [选项参数] -f sc

[转帖]SC命令管理服务状态

https://www.jianshu.com/p/e9b3079f9771 使用cmd命令手动、自动启动和禁用服务 小技巧使用命令行启动服务 在cmd下可有两种方法打开,net和sc,net用于打开没有被禁用的服务,语法是: net start 服务名 启动 net start 服务名net st

[转帖]Windows sc 命令

语法# sc [] config [] [optionname= optionvalues] 注意 每个命令行选项 (参数) 必须包含等号作为选项名称的一部分。 选项及其值之间需要一个空格 (例如 ,type= own。 如果省略空格,操作将失败)。

[转帖]如何使用手表作为指南针(以北半球为例)

https://www.citizenwatch-global.com/support/exterior/direction_sc.html 通过对比时针与太阳的位置可确定大致方位。要注意这样确定的方位是大致上的,因为在不同纬度和不同季节会有一些差异。将手表平放并将手表的时针指向太阳方向。则时针指向

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、