everest 绿色版下载-快搜浏览器

accountname
2023年4月4日发(作者:dwg格式)

SC命令⾏修改系统服务启动类型和启动停⽌服务

是⼀个命令⾏下管理本机或远程主机服务的⼯具,他的功能是⾮常强⼤的,

下⾯我们来讲讲他的⼀些常⽤的基本⽤法:

你可以在命令⾏下键⼊/?获得帮助.我们以在本机为例.

的基本格式:

sc[command][servicename]

这是他的基本格式,在管理远程主机时只需在SC后加上IP地址

sc192.168.0.1queryeventlog

2.查看⼀个服务的运⾏状态

scquery服务名

C:tools>scqueryeventlog

SERVICE_NAME:eventlog//显⽰的服务名

TYPE:20WIN32_SHARE_PROCESS

STATE:4RUNNING//运⾏的状态

(NOT_STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN)//下⾯讲

WIN32_EXIT_CODE:0(0x0)

SERVICE_EXIT_CODE:0(0x0)

CHECKPOINT:0x0

WAIT_HINT:0x0

运⾏的状态有:stopped(停⽌)/running(运⾏)/start_pending(等待启动)等状态

(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)

这个信息显⽰此服务可以接受的控制命令,上⾯这个就是//不能停⽌//不能暂停//接受关机

3.查看⼀个服务的配置信息

scqc服务名

C:tools>scqceventlog

[SC]GetServiceConfigSUCCESS

SERVICE_NAME:eventlog

TYPE:20WIN32_SHARE_PROCESS

START_TYPE:2AUTO_START//启动类别

ERROR_CONTROL:1NORMAL

BINARY_PATH_NAME:C://启动⽂件路径

LOAD_ORDER_GROUP:Eventlog

TAG:0

DISPLAY_NAME:EventLog

DEPENDENCIES:

SERVICE_START_NAME:LocalSystem

启动类别包括auto_start(⾃动)DEMAND_START(⼿动)DISABLED(禁⽌)

4.启动⼀个服务

scstart服务名

5.暂停⼀个服务

scpause服务名

6.继续⼀个服务

sccontinue服务名

7.停⽌⼀个服务

scstop服务名

8.禁⽌⼀个服务

sc服务名configstart=disabled

9.将⼀个服务设为⾃动运⾏

sc服务名configstart=auto

10.将⼀个服务设为⼿动运⾏

sc服务名configstart=demand

11.创建⼀个服务

sccreate服务名参数1参数2.....

以下是参数列表

type=

start=

error=

binPath=

group=

tag=

depend=

obj=

DisplayName=

password=

12.删除⼀个服务

scdelete服务名

13.查看所有的已运⾏的服务

scquery

14.查看所有的services&drivers服务

scquerystart=all

15.查看未运⾏的服务

scquerystate=inactive

16.从指定索引号恢复查看

scqueryri=号

17.锁住服务数据库

sclock

还有其他许多查询和设置的功能,⽐如查看服务依存关系等等

还可修改更细的服务配置,如修改服务描述服务⾓⾊等等,

具体请查看的帮助,⾥⾯写的很详细.

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

作为⼀个命令⾏⼯具,可以⽤来测试你⾃⼰的系统,你可以设置⼀个批处理⽂件来使⽤不同的参数调⽤

来控制服务。这个很有⽤,如果你想看看你的服务不断的启动和停⽌,我没有试过哦!让⼀个服务⼀下⼦

打开,⼀下⼦关闭,听上去很不错的。如果你的服务进程⾥⾯有多个进程的话,你可以保持⼀个进程继续运⾏不

让它⾛开,然后让另⼀个不断的打开在关闭,还可以寻找⼀下内存缺乏导致不完全清楚的证据。

下⾯介绍SC,SCQC,andSCQUERY

SC使⽤这样的语法:

[Servername]commandServicename[Optionname=Optionvalues]

[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

在注册表中为servicekey制定的名称。注意这个名称是不同于显⽰名称的(这个名称可以⽤netstart和服务控

制⾯板看到),⽽SC是使⽤服务键名来鉴别服务的。

Optionname

这个optionname和optionvalues参数允许你指定操作命令参数的名称和数值。注意,这⼀点很重要在操作名称和等

号之间是没有空格的。⼀开始我不知道,结果………………,⽐如,start=optionvalues,这个很重要。

optionvalues可以是0,1,或者是更多的操作参数名称和数值对。

如果你想要看每个命令的可以⽤的optionvalues,你可以使⽤sccommand这样的格式。这会为你提供详细的帮助。

Optionvalues

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

sccommand来询问每个命令。

Comments

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

当你键⼊SC⽽不带任何参数时,会显⽰帮助信息和可⽤的命令。当你键⼊SC紧跟着命令名称时,你可以得

到⼀个有关这个命令的详细列表。⽐如,键⼊sccreate可以得到和create有关的列表。

但是除了⼀个命令,scquery,这会导出该系统中当前正在运⾏的所有服务和驱动程序的状态。

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

SCcreate

这个命令可以在注册表和服务控制管理数据库建⽴⼀个⼊⼝。

语法1

sc[servername]createServicename[Optionname=Optionvalues]

这⾥的servername,servicename,optionname,optionvalues和上⾯的⼀样,这⾥就不多说了。这⾥我们详细说

明⼀下optionname和optionvalues。

Optionname--Optionvalues

描述

type=----own,share,interact,kernel,filesys

关于建⽴服务的类型,选项值包括驱动程序使⽤的类型,默认是share。

start=----boot,system,auto,demand,disabled

关于启动服务的类型,选项值包括驱动程序使⽤的类型,默认是demand(⼿动)。

error=----normal,severe,critical,ignore

当服务在导⼊失败错误的严重性,默认是normal。

binPath=--(string)

服务⼆进制⽂件的路径名,这⾥没有默认值,这个字符串是必须设置的。

group=----(string)

这个服务属于的组,这个组的列表保存在注册表中的ServiceGroupOrder下。默认是nothing。

tag=----(string)

如果这个字符串被设置为yes,sc可以从CreateServicecall中得到⼀个tagId。然⽽,SC并不显⽰这个标签,所

以使⽤这个没有多少意义。默认是nothing

depend=----(spaceseparatedstring)有空格的字符串。

在这个服务启动前必须启动的服务的名称或者是组。

obj=----(string)

账号运⾏使⽤的名称,也可以说是登陆⾝份。默认是localsystem

Displayname=--(string)

⼀个为在⽤户界⾯程序中鉴别各个服务使⽤的字符串。

password=--(string)

⼀个密码,如果⼀个不同于localsystem的账号使⽤时需要使⽤这个。

Optionvalues

Optionname参数名称的数值列表。参考optionname。当我们输⼊⼀个字符串时,如果输⼊⼀个空的引⽤这意味着

⼀个空的字符串将被导⼊。

Comments

TheSCCreatecommandperFORMstheoperationsoftheCreateServiceAPIfunction.

这个sccreate命令执⾏CreateServiceAPI函数的操作。详细请见CreateService。

例1

下⾯这个例⼦在⼀台叫做(myserver)的计算机上为⼀个叫“NewService”的服务建⽴的⼀个注册表登记。

scmyservercreateNewServicebinpath=c:

按照默认,这个服务会建⽴⼀个WIN32_SHARE_PROCESS使⽤SERVICE_DEMAND_START启动⽅式。这将不会有任何从属

关系,也将会按照localsystem安全上下关系来运⾏。

例2

下⾯这个例⼦将在本地计算机上,建⽴⼀个服务,它将会是⼀个⾃动运⾏服务,并且运⾏在他⾃⼰的进程上。它

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

sccreateNewServicebinpath=c:e=own

start=autodepend='+TDINetbios'

例3

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

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

scconfigNewServicebinpath='ntsd-dc:'

这个例⼦会引起服务控制管理器调⽤使⽤下例的参数字符串:

'-dc:'

当系统装⼊时ntsd将会转⽽打断调试器,所以断点可以被设置在服务代码⾥。

SCQC

这个SCQC“询问配置”命令可以列出⼀个服务的配置信息和QUERY_SERVICE_CONFIG结构。

语法1

sc[Servername]qcServicename[Buffersize]

Parameters

servername和servicename前⾯已经介绍过了,这⾥不再多说。

Buffersize,可选择的,列出缓冲区的尺⼨。

Comments

SCQC命令显⽰了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”服务的配置:

scmyserverqcNewService

sc显⽰下⾯的信息:

SERVICE_NAME:NewService

TYPE:20WIN32_SHARE_PROCESS

START_TYPE:3DEMAND_START

ERROR_CONTROL:1NORMAL

BINARY_PATH_NAME:c:

LOAD_ORDER_GROUP:

TAG:0

DISPLAY_NAME:NewService

DEPENDENCIES:

SERVICE_START_NAME:Localsystem

NewService有能⼒和其他的服务共享⼀个进程。但是它不是⾃动启动的。⼆进制⽂件名是。这个服务

不依靠与其它的的服务,⽽且运⾏在lcoalsystem的安全上下关系中。这些都是调⽤QueryServiceStatus基本的返

回,如果还需要更多的细节届时,可以看看API函数⽂件。

SCQUERY

SCQUERY命令可以获得服务的信息。

语法:

sc[Servername]query{Servicename|Optionname=Optionvalues...}

参数:

servername,servicename,optionname,optionvalues不在解释。只谈⼀下这个命令提供的数值。

Optionname--Optionvalues

Description

type=----driver,service,all

列举服务的类型,默认是service

state=----active,inactive,all

列举服务的状态,默认是active

bufsize=--(numericvalues)

列举缓冲区的尺⼨,默认是1024bytes

ri=----(numericvalues)

但开始列举时,恢复指针的数字,默认是0

Optionvalues

同上。

Comments

SCQUERY命令可以显⽰SERVICE_STATUS结构的内容。

下⾯是SERVICE_STATUS结构相应的信息:

TYPE------dwServiceType

STATE------dwCurrentState,dwControlsAccepted

WIN32_EXIT_CODE----dwWin32ExitCode

SERVICE_EXIT_CODE--dwServiceSpecificExitCode

CHECKPOINT----dwCheckPoint

WAIT_HINT----dwWaitHint

在启动计算机后,使⽤SCQUERY命令会告诉你是否,或者不是⼀个启动服务的尝试。如果这个服务成功启动,WIN32_EXIT_CODE区间

会将会包含⼀个0,当尝试不成功时,当它意识到这个服务不能够启动时,这个区间也会提供⼀个退出码给服务。

例⼦

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

scqueryNewService

显⽰⼀下信息:

SERVICE_NAME:NewService

TYPE:20WIN32_SHARE_PROCESS

STATE:1STOPPED

(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)

WIN32_EXIT_CODE:1077(0x435)

SERVICE_EXIT_CODE:0(0x0)

CHECKPOINT:0x0

WAIT_HINT:0x0

注意,这⾥存在⼀个给这个服务的退出码,即使这个服务部不在运⾏,键⼊nethelpmsg1077,将会得到对1077错误信息的说明:

上次启动之后,仍未尝试引导服务。

所以,这⾥我想说⼀句,希望⼤家可以活⽤nethelpmsg,这会对你的学习有很⼤的帮助。

下⾯在对SCquery的命令在说明⼀下:

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

scquery

显⽰messenger服务,使⽤以下命令:

scquerymessenger

只列举活动的驱动程序,使⽤以下命令:

scquerytype=driver

列举Win32服务,使⽤以下命令:

scquerytype=service

列举所有的服务和驱动程序,使⽤以下命令:

scquerystate=all

⽤50byte的缓冲区来进⾏列举,使⽤以下命令:

scquerybufsize=50

在恢复列举时使⽤index=14,使⽤以下命令:

scqueryri=14

列举所有的交互式服务,使⽤以下命令:

scquerytype=servicetype=interact

1、修改启动类型

scconfigRemoteAccessstart=demand

说明:RemoteAccess是“RoutingandRemoteAccess”服务的名字

start=“空格(⼀定要)”demand(⼿动)/auto(⾃动)/disabled(禁⽌)

2、启动停⽌服务

scstartRemoteAccess

scstopRemoteAccess

netstartRemoteAccess

netstopRemoteAccess

更多推荐

accountname