特殊指令之SC命令详解

SC命令是Windows系统中用于管理和控制服务的强大工具,能够更改服务的启动状态、删除服务、启动或停止服务等。它可以创建批处理文件以自动化服务操作。SC命令的使用需要管理员权限,主要功能包括:更改服务启动状态、删除服务、检索和设置服务信息、创建服务等。通过SC,可以深入操作系统层面进行服务管理,类似于控制面板中的服务管理工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

特殊指令之SC命令详解

 

特殊指令之SC命令详解


DOS脚本梳理已发布文章 :

 


SC命令是XP系统中功能强大的DOS命令,SC命令能与“服务控制器”和已安装设备进行通讯。

声明一下: 小编是从微软官网上查的资料(https://technet.microsoft.com/zh-cn/library/cc772676#BKMK_config), 只是通过自己的理解进行测试并插入小编的测试截图, 希望对大家有用

Win7及其以上版本当然也能用

SC命令主要的几个功能:

1. 更改服务的启动状态(这是比较有用的一个功能) ,可以设置存储在注册表中的服务属性,以控制如何在启动时启动服务应用程序,以及如何将其作为后台程序运行。即更改服务的启动状态  

2. 删除服务(除非对自己电脑的软、硬件所需的服务比较清楚,否则不建议删除任何系统服务,特别是基础服务)  

3. 停止或启动服务(功能上类似于net stop/start,但速度更快且能停止的服务更多)

4. SC可以 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序

5. 可以创建批处理文件来调用不同的 SC 命令,以自动启动或关闭服务序列。

说白了: SC.exe提供的功能类似于“控制面板”中“管理工具”项中的“服务”


获取SC的帮助文档 : 

在 cmd 窗口中执行 SC 命令即可获取其帮助文档内容, 从帮助文档中可以看到, SC下面还有很多个子命令, 所以, 除 SC Query 外, 其它命令的帮助文档的获取方式, 就是在CMD中执行 SC + 子命令名 就可以获取到.

值得注意的一点: 因为SC命令操作的是系统服务, 所以最好在管理员权限下操作.

特殊指令之SC命令详解

SC命令帮助


语法体: sc <ServerName> [command] [service name] <option1> <option2>...

命令行语法键

下表描述了用于指示命令行语法的标记。

表示法 说明

不带方括号或大括号的文本

您必须键入如下所示的项目

< 尖括号内的文本 >

您必须为其提供值的占位符

[方括号内的文本]

可选的项目

{大括号内的文本}

一组所需的项目。选择一个

竖线 (|)

互斥项 ; 的分隔符选择一个

省略号 (…)

可重复的项目

ServerName: 指定服务所在的远程服务器的名称。该名称必须使用 UNC 格式(“\myserver”),无此参数则默认为本地.

[command]: SC的子命令

[service name]: 服务名称(不一定是显示的名称)

特殊指令之SC命令详解

特殊指令之SC命令详解

特殊指令之SC命令详解

SC命令不能单独使用,必须和其它的命令结合起来一起使用。

注意注意再注意: 每个参数项=号后面必须有一个空格, 再接参数值. 如: sc query type= driver type= interact


声明: 小编是一个个的去写的实例, 不敢误导众友人, 大多理论文本来自微软官方, 我是边理解边实验, 不懂的地方也有标注. 由于涉及对微软系统更加深入了点, 命令及参数以小编的水平是稍复杂.

至于条友们是否能看的下去, 嘿嘿 ,感觉肯定收藏的占9成.


(1) sc lock -----锁定“服务控制管理器”的数据库。

语法

sc [ServerName] lock

参数

  • ServerName

  • 指定服务所在的远程服务器的名称。该名称必须使用 UNC 格式(“\myserver”)。要在本地运行 SC.exe,请忽略此参数。

  • /?

  • 在命令提示符下显示帮助。

备注

  • 锁定“服务控制管理器”的数据库会阻止启动任何服务。如果要确保服务在停止之后不会启动,请使用这个命令。这可以使您不受干扰地进行一些操作(例如,删除服务)。

  • 使用 lock 操作锁定“服务控制管理器”的数据库,然后通过键入 u 来使数据库解锁。也可停止锁定数据库的进程。

特殊指令之SC命令详解

sc lock操作演示

(2) sc querylock -----查询和显示“服务控制管理器”数据库的锁定信息。

特殊指令之SC命令详解

sc querylock 信息中几个参数的意思

特殊指令之SC命令详解

解锁后的状态信息


(3) sc query-----------查询服务的状态(当前本机所有的服务状态信息),或枚举服务类型的状态。

获得和显示关于指定的服务、驱动程序、服务类型或驱动程序类型的信息

语法(此类内容看不懂就往下滑, 可以看实例演示)

Sc [ServerName] query [ServiceName] [type= {driver | service | all}] [type= {own | share | interact | kernel | filesys | rec | adapt}] [state={active | inactive | all}] [bufsize= BufferSize] [ri= ResumeIndex] [group= GroupName]

下表描述了用于指示命令行语法的标记。

表示法 说明

不带方括号或大括号的文本

您必须键入如下所示的项目

< 尖括号内的文本 >

您必须为其提供值的占位符

[方括号内的文本]

可选的项目

{大括号内的文本}

一组所需的项目。选择一个

竖线 (|)

互斥项 ; 的分隔符选择一个

省略号 (…)

可重复的项目

参数

  • ServerName

  • 指定服务所在的远程服务器的名称。该名称必须使用 UNC 格式(“\myserver”)。如果要在本地运行 SC.exe,请忽略此参数。

  • ServiceName

  • 指定由 getkeyname 操作返回的服务名。此 query 参数不与其他的 query 参数结合使用(除了 ServerName)。

  • type= {driver | service | all}

  • 指定需要枚举的内容。默认类型为 service。

    描述

    driver

    指定仅枚举驱动程序。

    service

    指定仅枚举服务。

    all

    指定同时枚举驱动程序和服务。

  • type= {own | share | interact | kernel | filesys | rec | adapt}

  • 指定要枚举的服务类型或驱动程序类型。

    描述

    own

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

    share

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

    interact

    服务可以与桌面交互,接收用户的输入。交互服务必须在 LocalSystem 帐户下运行。

    kernel

    驱动程序。

    filesys

    文件系统驱动程序。

  • state= {active | inactive | all}

  • 指定要枚举的服务的已开始状态。默认状态是 active。

    描述

    active

    指定所有的活动服务。

    inactive

    指定所有暂停或停止的服务。

    all

    指定所有服务。

  • bufsize= BufferSize

  • 以字节为单位指定枚举缓冲区的大小。默认大小为 1024 字节。当从查询返回的显示结果超过 1024 个字节时,增加枚举缓冲区的大小。

  • ri= ResumeIndex

  • 指定开始或继续枚举的索引号。默认值为 0。 在查询返回的信息超过默认缓冲区能够显示的大小时,请与 bufsize= 参数结合使用这个参数。

  • group= GroupName

  • 指定要枚举的服务组。默认设置为所有组。

  • /?

  • 在命令提示符下显示帮助。

备注

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

  • query 操作可以显示有关服务的下列信息:SERVICE_NAME(服务的注册表子项名)、TYPE、STATE(以及不可用的状态)、WIN32_EXIT_B、SERVICE_EXIT_B、CHECKPOINT 和 WAIT_HINT。

  • 在某些情况下,type= 参数可以使用两次。type= 参数的第一次出现指定是否查询服务、驱动器或所有这些项。type= 参数的第二次出现指定一个由 create 操作进一步缩小查询范围的类型。

  • 当 query 命令的显示结果超过了枚举缓冲区的大小时,显示类似于以下内容的消息:

    Enum: more data, need 1822 bytes start resume at index 79

    要显示剩余的 query 信息,请重新运行 query,将 bufsize= 设置为所需的字节数,并将 ri= 设置为指定的索引。例如,在命令行键入下面的指令会显示剩余的输出:

    sc query bufsize= 1822 ri= 79

特殊指令之SC命令详解

SC Query 获取本机或远程主机的所有服务的状态信息

SERVICE_NAME: 服务名称(可用于服务操作)

DISPLAY_NAME: 服务对外显示名称(可自定义, 但不能用于操作服务)

TYPE= {DRIVER (驱动)| SERVICE(服务, 默认) | ALL(所有)} 指定需要枚举的内容。默认类型为 service。

TYPE= {own | share | interact | kernel | filesys | rec | adapt} 指定要枚举的服务类型或驱动程序类型。如上图中的(interactive) 表示此服务可交互, 属交互类型

STATE= {ACTIVE| INACTIVE| ALL}指定要枚举的服务的已开始状态。默认状态是 active。

WIN32_EXIT_CODE: 主线程退

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值