`
ihuashao
  • 浏览: 4723001 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Windows SC(server control)命令详解 - 如何远程停止/启动/控制Windows服务

阅读更多

作为一个命令很工具,SC.exe可以用来测试你自己的系统,你可以设置一个批处理文件来使用不同的参数调用 SC.exe来控制服务。这个很有用,如果你想看看你的服务不断的启动和停止,我没有试过哦!让一个服务一下子打开,一下子关闭,听上去很不错的。如果你的服务进程里面有多个进程的话,你可以保持一个进程继续运行不让它走开,然后让另一个不断的打开在关闭,还可以寻找一下内存缺乏导致不完全清楚的证据。
下面介绍SC,SC QC,and SC QUERY

SC使用这样的语法:
1. SC [Servername] command Servicename [Optionname= Optionvalues]
2. SC [command]


这里使用第一种语法使用SC,使用第二种语法显示帮助。
下面介绍各种参数。

Servername
可选择:可以使用双斜线,如myserver,也可以是192.168.0.1来操作远程计算机。如果在本地计算机上操作

就不用添加任何参数。

Command
下面列出SC可以使用的命令。
config----改变一个服务的配置。(长久的)
continue--对一个服务送出一个继续控制的要求。
control----对一个服务送出一个控制。
create----创建一个服务。(增加到注册表中)
delete----删除一个服务。(从注册表中删除)
EnumDepend--列举服务的从属关系。
GetDisplayName--获得一个服务的显示名称。
GetKeyName--获得一个服务的服务键名。
interrogate--对一个服务送出一个询问控制要求。
pause----对一个服务送出一个暂停控制要求。
qc----询问一个服务的配置。
query----询问一个服务的状态,也可以列举服务的状态类型。
start----启动一个服务。
stop----对一个服务送出一个停止的要求。
Servicename
在注册表中为service key制定的名称。注意这个名称是不同于显示名称的(这个名称可以用net start和服务控制面板看到),而SC是使用服务键名来鉴别服务的。

Optionname
这个optionname和optionvalues参数允许你指定操作命令参数的名称和数值。注意,这一点很重要在操作名称和等 号之间是没有空格的。一开始我不知道,结果………………,比如,start= optionvalues,这个很重要。

optionvalues可以是0,1,或者是更多的操作参数名称和数值对。
如果你想要看每个命令的可以用的optionvalues,你可以使用sc command这样的格式。这会为你提供详细的帮助。

Optionvalues
为optionname的参数的名称指定它的数值。有效数值范围常常限制于哪一个参数的optionname。如果要列表请用

sc command来询问每个命令。

Comments
很多的命令需要管理员权限,所以我想说,在你操作这些东西的时候最好是管理员。呵呵!

当你键入SC而不带任何参数时,SC.exe会显示帮助信息和可用的命令。当你键入SC紧跟着命令名称时,你可以得 到一个有关这个命令的详细列表。比如,键入sc create可以得到和create有关的列表。
但是除了一个命令,sc query,这会导出该系统中当前正在运行的所有服务和驱动程序的状态。

当你使用start命令时,你可以传递一些参数(arguments)给服务的主函数,但是不是给服务进程的主函数。

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
下面这个例子在一台叫做(myserver)的计算机上为一个叫“NewService”的服务建立的一个注册表登记。
sc myserver 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将会转而打断调试器,所以断点可以被设置在服务代码里。

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 myserver 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函数文件。

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命令基本上已经说完了。希望大家好好看看,呵呵!相信会有帮助的!!

-------------------

To stop a service remotly you can use the command sc.

Example:
> sc \\computer stop "Service Name"
> sc \\computer start "Service Name"

分享到:
评论

相关推荐

    sc-88/sc-70-6/sot363封装 protel.PcbLib

    sc-88/sc-70-6/sot363封装的 protel库文件,扩展名PcbLib

    安国SC908AN-G/AU6989AN-G - F/W D826写保护量产工具

    烦!U盘总是写保护,总算花了几个小时,被我找到了...本人主控型号:SC908AN-G/AU6989AN-G - F/W D826 下了好多量产的版本工具都试了不行,维独此版本,亲测可行,用这个版本还可以量产D82B等几个型号的。需要的拿去。

    常用dos命令参数详解-收集高手的dos命令绝招

    ### 常用DOS命令参数详解 #### 一、`DIR`命令详解 `DIR`命令用于显示指定路径下的目录列表以及文件信息。通过不同的参数组合,可以实现多种功能。 1. **基本语法** - `dir [D:][PATH][NAME][[/A][:attrib]][/o:...

    SC908SN/AU6989SN [E512] - F/W 230d主控U盘量产工具.zip

    SC908SN/AU6989SN [E512] - F/W 230d芯片可用的U盘量产工具,网友分享过来的,有相同芯片的朋友可以试一下。程序版本:ALCOR MP_v13.10.28.01.C如果量产错误,整体建议如下:1.如使用版本为旧版本,请更换新...

    imgRePacker-207(全志解包封包工具)

    Version 2.07 Windows & Linux Supported firmware images (known): - Sochip SC8600/SC9800 (LiveSuit/zdisk); - Boxchip F10/F15/F16/F20 (LiveSuit/zdisk); - Teclast T7200/T8100 (LiveSuit/zdisk); - ...

    双目相机驱动程序(附MV Capture).rar

    1. USB支持USB接口的相机包括以下型号:MV-VD030SC/SMMV-VD078SC/SMMV-VD120SC/SMMV-VD036SC/SMMV-VD040SC/SMMV-VD130SC/SMMV-VD500SC/SM2. 1394,支持1394接口的相机包括以下型号:MV-VS030FC/FMMV-VS030FC/FM-LMV...

    windows服务管理代码,可以启动暂停停止服务.zip

    - **ControlService()**:控制服务,包括暂停、恢复和停止。 - **DeleteService()**:删除服务。 - **CloseServiceHandle()**:关闭服务句柄。 4. **ServiceControlManagerF2K.zip**: 这个文件可能是封装了...

    Windows版本Redis-x64-5.0.14安装包

    sc create RedisService binpath= "C:\Redis\redis-server.exe --service-run C:\Redis\redis.windows-service.conf" ``` 5. 创建服务后,启动Redis服务: ``` net start RedisService ``` **使用Redis:** 1...

    xp_sc命令下启动服务

    它与`sc.exe`工具密切相关,`sc.exe`是系统控制(Service Control)的缩写,是Windows内置的服务管理命令行实用程序。在`xp_sc`环境下启动服务,实际上是通过`sc.exe`来实现的,因为`xp_sc`在Windows XP时代被广泛...

    Alcor(安国)SC708(FC8708)/AU6987/AU6990量产专用工具(可反复量产)

    设备描述: [H:][I:]USB Mass Storage Device(Generic/ Autorun Disk/disk2go RETRACT) ... 芯片型号: SC708(FC8708)/AU6987/AU6990 - F/W EC23 闪存识别码: 2C88044B - Micron(美光) - 1CE/单通道 [MLC-8K]

    香港商兴华科仪MLiS MLB-S-BGS2-BW双频/四频 GSM/GPRS 终端 产品资料.zip

    MLiS MLB-S-BGS2-BW支持AT命令集,用户可以通过串口进行配置和控制。在物联网应用中,它可以作为远程传感器的数据传输节点,实现数据采集和上传;在远程监控系统中,它可实现视频、音频等数据的实时传输;在自动化...

    SC708(FC8708)/AU6987量化工具

    【标题】"SC708(FC8708)/AU6987量化工具" 涉及的是一个专门针对SC708和FC8708/AU6987芯片的闪存控制器的量化软件。在IT行业中,量化工具通常用于将数据或程序转换为特定格式,以便于在不同设备间进行高效传输和存储...

    windows实现远程登录目标服务器并自动启动程序

    在Windows环境中,实现远程登录目标服务器并自动启动程序是一个常见的任务,尤其对于系统管理员和开发者来说,这可以方便地进行远程管理和自动化运维。本篇将详细介绍如何通过命令行执行C++编译后的可执行文件,输入...

    汉源高科全彩高清大屏LED大屏光纤收发器光电转换器兼容灵星雨诺瓦卡莱特LED光纤收发器 凯视达灵信光电转换器.docx

    HY5211G-SC25A/B 是一款 LED 显示屏用光纤收发器,采用进口网络交换 IC 芯片,具有无缝兼容灵星雨、诺瓦、凯视达、德普达、聚诚、卡莱特、励研、灵信、摩西尔、仰邦、诣阔、 中庆等品牌全系列 LED 控制卡。...

    CAD快捷键-CAD常用快捷键命令大全.pdf

    CAD快捷键是计算机辅助设计软件AutoCAD中的操作方式,通过键盘输入特定的字母组合或命令来快速执行图形设计工作中的各种操作,极大地提高了绘图效率。根据提供的文件内容,我们可以归纳出以下常用CAD快捷键命令及其...

    服务状态停止或启动,无法启动也无法停止问题

    - 使用`sc start <服务名>`和`sc stop <服务名>`命令尝试手动启动或停止服务。 3. **重置服务配置**: - 使用`sc config <服务名> binPath= "<路径>"`命令重置服务的可执行文件路径。 4. **修复注册表**: - 有...

    量产工具安国SC908AN(L)/AU6989AN(L) [E304] - F/W D823

    标题 "量产工具安国SC908AN(L)/AU6989AN(L) [E304] - F/W D823" 指的是一款由安国(Alcor Micro)公司推出的针对特定主控芯片进行大量生产操作的工具。这款工具主要用于对SC908AN(L)和AU6989AN(L)型号的主控芯片进行...

    java项目在window注册服务自启动

    例如,`wrapper.exe -t your_service_name`将启动服务,`-s`将停止服务,`-r`则重启服务。 6. **日志管理**: JSW还提供了日志记录功能,你可以配置`wrapper.conf`来设定日志路径和级别,方便故障排查和调试。 注意...

    windows系统下将nginx作为系统服务启动

    你可以通过winsw提供的命令来控制服务(如停止、重启),并且在系统重启后,Nginx会自动启动,为你的Web应用提供服务。 记住,配置过程中可能出现权限问题或配置错误,务必仔细检查每个步骤。如果遇到问题,查看...

    用命令行启动windows服务

    ### 使用命令行启动Windows服务详解 #### 一、概述 在Windows操作系统中,服务是后台运行的任务或进程,它们提供特定的功能,如网络共享、打印支持等。通常情况下,我们可以通过“服务”面板来管理这些服务的状态...

Global site tag (gtag.js) - Google Analytics