ResourceKit中文版帮助[9]

[入库:2005年9月19日] [更新:2007年3月25日]

本文简介:

sc create NewService binpath= c:\winnt\system32\NewServ.exe type= own  
start= auto depend= "+TDI Netbios"  

例3  
服务开发者可以通过临时改变二进制路径(影像路径)的方式来将这个服务运行在内核调试器的上下关系中。下面这个例子就可以让我们看到如何改变服务的配置。  

sc config NewService binpath= "ntsd -d c:\winnt\system32\Newserv.exe"  
这个例子会引起服务控制管理器调用ntsd.exe使用下例的参数字符串:  
"-d c:\nt\system32\NewServ.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:\winnt\system32\NewServ.exe  
LOAD_ORDER_GROUP :  
TAG : 0  
DISPLAY_NAME : NewService  
DEPENDENCIES :  
SERVICE_START_NAME : LocalSystem  

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

SC QUERY  

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

语法:  
sc [Servername] query { Servicename │ Optionname= Optionvalue... }  

参数:  

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

Optionname Optionvalue  
Description  

type= driver, service, all  
列举服务的类型,默认是service  

state= active, inactive, all  
列举服务的状态,默认是active  

bufsize= (numeric value)  
列举缓冲区的尺寸,默认是1024 bytes  

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

Optionvalue  
同上。  

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的命令在说明一下:  

本文关键:ResourceKit中文版帮助
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top