everest 绿色版下载-快搜浏览器
2023年4月4日发(作者:dwg格式)
SC命令⾏修改系统服务启动类型和启动停⽌服务
是⼀个命令⾏下管理本机或远程主机服务的⼯具,他的功能是⾮常强⼤的,
下⾯我们来讲讲他的⼀些常⽤的基本⽤法:
你可以在命令⾏下键⼊/?获得帮助.我们以在本机为例.
的基本格式:
sc
这是他的基本格式,在管理远程主机时只需在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
发布评论