sc命令 SC命令的用法
sc命令 SC命令的用法
=================================
SC命令是XP系统中功能强大的DOS命令,SC命令能与“服务控制器”和已安装设备进行通讯。SC命令的功能有
1、SC可以 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序。
2、可以设置存储在注册表中的服务属性,以控制如何在启动时启动服务应用程序,以及如何将其作为后台程序运行。即更改服务的启动状态。
3、SC 命令还可以用来删除系统中的无用的服务。(除非对自己电脑中的软硬件所需的服务比较清楚,否则不建议删除任何系统服务,尤其是基础服务)
4、SC命令 的参数可以配置指定的服务,检索当前服务的状态,也可以停止和启动服务(功能上类似NET STOP/START命令,但SC速度更快且能停止更多的服务)。
5、可以创建批处理文件来调用不同的 SC 命令,以自动启动或关闭服务序列。
SC.exe 提供的功能类似于“控制面板”中“管理工具”项中的“服务”。
下面给出每个命令详细的用法
1、sc boot
表明最近的启动是否应该保存为上次已知的正确配置。
语法
Sc [ServerName] boot [{bad | OK}]
参数
ServerName:上面已经介绍,在此不在累述(下同)
[{bad | OK}]
指定最近的启动是否错误或它是否应该保存为上次已知的正确启动配置。
下面的示例显示了如何使用 sc boot 命令:
sc boot ok
sc boot bad
2、sc config
修改注册表和“服务控制管理器”数据库中服务项目的值。
语法
Sc [ServerName] config [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
ServiceName
指定要操作的服务名。(上面也已经介绍,下文不在累述)
type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}
指定服务类型。
own
服务以其自身的进程运行。不与其他服务共享可执行文件。这是默认值。
share
服务作为共享进程运行。与其他服务共享可执行文件。
kernel
驱动程序。
filesys
文件系统驱动程序。
rec
文件系统识别驱动程序(标识计算机上使用的文件系统)。
adapt
适配器驱动程序(标识键盘、鼠标、磁盘驱动器这样的硬件项)。
interact
服务
可以与桌面交互,接收用户的输入。交互服务必须在 LocalSystem 帐户下运行。该类型必须与 type= own 或 type= shared(例如,type= interact type= own)结合使用。自身使用 type= interact 将会产生参数无效的错误。
start= {boot | system | auto | demand | disabled}
指定服务的启动类型。
boot
由启动加载程序加载的设备驱动程序。
system
在核心初始化过程中启动的设备驱动程序。
auto
每次计算机重新启动时都会自动启动、并且即使无人登录到计算机也能正常运行的服务。
demand
必须手动启动的服务。如果没有指定 start=,则此项即为默认值。
disabled
不能启动的服务。要启动禁用的服务,应将启动类型更改为其他值。
error= {normal | severe | critical | ignore}
如果在启动过程中,服务启动失败,则指定错误的严重性。
normal
将记录错误,并且显示消息对话框,通知用户服务启动失败。启动将继续。这是默认设置。
severe
记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。这可能导致计算机能够重新启动,但服务却仍然无法运行。
critical
记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。如果上次已知正确的配置失败,启动也将失败,启动进程将以停止错误而中止。
ignore
错误已记录,启动继续。记录错误超出在事件ri志的范围,不再给用户作出提示。
binpath= BinaryPathName
指定指向服务二进制文件的路径。
group= LoadOrderGroup
指定该服务所属组的名称。组列表存储在注册表的 HKLM\System\CurrentControlSet\Control\ServiceGroupOrder 子项中。默认设置为空值。
tag= {yes | no}
指定是否在 CreateService 调用中获得 TagID。标记仅用于引导启动或系统启动驱动程序。
depend= dependencies
指定必须在此项服务之前启动的服务或组的名称。名称以正斜杠 (/) 分隔。
obj= {AccountName | ObjectName}
指定运行服务将使用的帐户名,或指定运行驱动程序将使用的 Windows 驱动程序对象名。默认设置为 LocalSystem。
displayname= DisplayName
指定一个可以在用户界面程序中用于为用户标识服务的友好的、有意义的名称。例如,一项服务的子项名是对用户毫无意义的 wuauserv,而显示的名称是“自动更新”。
password= Password
指定一个密码。如果使用了非 LocalSystem 的帐户,则此项是必需的。
备注
如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则
操作会失败。
示例
下面的示例显示了如何使用 sc config 命令:
sc config NewService binpath= "ntsd -d c:\windows\system32\NewServ.exe"
3、sc continue
为了恢复暂停的服务,要给服务发送一个 CONTINUE 控制请求。
语法
Sc [ServerName] continue [ServiceName]
参数
ServerName:略
ServiceName:略
备注
使用 continue 操作来恢复暂停的服务。
下面的示例显示了如何使用 sc continue 命令:
sc continue tapisrv
4、sc control
向服务发送 CONTROL 。
语法
sc [ServerName] control [ServiceName] [{paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB}]
参数
{paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB}
指定要发送到服务的控制。
5、sc create
在注册表和“服务控制管理器”中为服务创建子项和项目。
语法
Sc [ServerName] create [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
参数:各个参数的作用参见sc config 命令
下面的示例显示了如何使用 sc create 命令:
sc \\myserver create NewService binpath= c:\windows\system32\NewServ.exe
sc create NewService binpath= c:\windows\system32\NewServ.exe type= share start= auto depend= "+TDI Netbios"
6、sc delete
从注册表中删除服务子项。如果服务正在运行或者另一个进程有一个该服务的打开句柄,那么此服务将标记为删除。
语法
Sc [ServerName] delete [ServiceName]
参数:略
备注
使用“添加或删除程序”删除 DHCP、DNS 或任何其他内置的操作系统服务。“添加或删除程序”不仅会删除该服务的注册表子项,而且还会卸载该服务并删除其所有的快捷方式。
下面的示例显示了如何使用 sc delete 命令:
sc delete newserv
7、sc descrīption
设置服务的描述字符串。
语法
Sc [ServerName] descrīption [ServiceName] [Descrīption]
参数:略
描述
为指定服务指定描述。这个描述的内容可以在控制面板-管理工具-服务里通过查看该服务的属性看到。如果没有指定字符串,则不会修改该服务的描述。不限制服务描述中可包含的字符数。
示例
下面的示例显示了如何使用 sc
descrīption 命令:
sc descrīption newserv "Runs quality of service control."
8、sc enumdepend
枚举依赖此服务的系统组件,这也可以从控制面板-管理工具-服务里通过查看该服务的属性中的依存关系选项卡看到(“下面的系统组件依赖此服务”下面的部分)
语法
Sc [ServerName] enumdepend [ServiceName] [BufferSize]
参数
BufferSize
以字节为单位指定枚举缓冲区的大小。默认值为 1024 字节。
备注
如果缓冲区不够大,enumdepend 操作只会部分输出依存关系,并指定输出所有依存关系所需的额外缓冲区大小。如果输出被截断,请重新运行该操作并指定更大的缓冲区大小。
下面的示例显示了如何使用 sc enumdepend 命令:
sc enumdepend rpcss 5690
sc enumdepend tapisrv
9、sc failure
指定服务失败时要采取的措施。
语法
Sc [ServerName] failure [ServiceName] [reset= ErrorFreePeriod] [reboot= BroadcastMessage] [command= CommandLine] [actions= FailureActionsAndDelayTime]
参数
reset= ErrorFreePeriod
指定没有失败的周期长度(单位为秒),此后失败计数应该重置为 0。这个参数必须与 actions= 参数结合使用。
reboot= BroadcastMessage
指定服务失败时要广播的消息。
command= CommandLine
指定服务失败时要运行的命令行。有关在失败时如何运行批处理或 VBS 文件的详细信息,请参阅“注释”。
actions= FailureActionsAndDelayTime
指定失败操作及其延迟时间(单位为毫秒),以正斜杠 (/) 隔开。以下操作均有效:run、restart 和 reboot。此参数必须与 reset= 参数结合使用。失败后不采取任何操作时,请使用 actions= ""。
备注
并非所有服务都允许更改其失败选项。其中一些作为服务集的一部分运行。
要在失败时运行批处理文件,请指定 cmd.exeDrive:\FileName.bat 为 command= 参数,其中 Drive:\FileName.bat 是批处理文件的完全合格的名称。
要在失败时运行 VBS 文件,请指定 cscrīpt drive:\myscrīpt.vbs 为 command= 参数,其中 Drive:\myscrīpt.vbs 是脚本文件完全合格的名称。
可以将三种不同的操作指定为 actions= 参数,它们将会在服务的第一次、第二次、第三次失败时使用。
如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则操作会失败。
下面的示例显示了如何使用 sc failure 命令:
sc failure msftpsvc reset= 30 actions= restart/5000
sc failure dfs reset= 60 command= c:\windows\services\restart_dfs.exe actions= run/5000
sc failure dfs reset= 60 actions= reboot/30000
s
c failure dfs reset= 60 reboot= "The Distributed File System service has failed.Because of this, the computer will reboot in 30 seconds." actions= reboot/30000
sc failure myservice reset= 3600 reboot= "MyService crashed -- rebooting machine" command= "%windir%\MyServiceRecovery.exe" actions= restart/5000/run/10000/reboot/60000
10、sc getdisplayname
获得与特定服务关联的显示名称。
语法
Sc [ServerName] getdisplayname [ServiceName] [BufferSize]
参数
BufferSize
指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
下面的示例显示了如何使用 sc getdisplayname 命令:
sc getdisplayname clipsrv
sc getdisplayname tapisrv
sc getdisplayname sharedaccess
下面给出每个命令详细的用法
1、sc boot
表明最近的启动是否应该保存为上次已知的正确配置。
语法
Sc [ServerName] boot [{bad | OK}]
参数
ServerName:上面已经介绍,在此不在累述(下同)
[{bad | OK}]
指定最近的启动是否错误或它是否应该保存为上次已知的正确启动配置。
下面的示例显示了如何使用 sc boot 命令:
sc boot ok
sc boot bad
2、sc config
修改注册表和“服务控制管理器”数据库中服务项目的值。
语法
Sc [ServerName] config [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
ServiceName
指定要操作的服务名。(上面也已经介绍,下文不在累述)
type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}
指定服务类型。
own
服务以其自身的进程运行。不与其他服务共享可执行文件。这是默认值。
share
服务作为共享进程运行。与其他服务共享可执行文件。
kernel
驱动程序。
filesys
文件系统驱动程序。
rec
文件系统识别驱动程序(标识计算机上使用的文件系统)。
adapt
适配器驱动程序(标识键盘、鼠标、磁盘驱动器这样的硬件项)。
interact
服务可以与桌面交互,接收用户的输入。交互服务必须在 LocalSystem 帐户下运行。该类型必须与 type= own 或 type= shared(例如,type= interact type= own)结合使用。自身使用 type= interact 将会产生参数无效的错误。
start= {boot | system | auto | demand | disabled}
指定服务的启动类型。
boot
由启动加载程序加载的设备驱动程序。
system
在核心初始化过程中启动的设备驱动程序。
auto
每次计算机重新启动时都会自动启动、并且即使无人登录到计算机也能正常运行的服务。
demand
必须手动启动的服务。如果没有指定 start=,则此项即为默认值。
disabled
不能启动的服务。要启动禁用的服务,应将启动类型更改为其他值。
error= {normal | severe | critical | ignore}
如果在启动过程中,服务启动失败,则指定错误的严重性。
normal
将记录错误,并且显示消息对话框,通知用户服务启动失败。启动将继续。这是默认设置。
severe
记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。这可能导致计算机能够重新启动,但服务却仍然无法运行。
critical
记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。如果上次已知正确的配置失败,启动也将失败,启动进程将以停止错误而中止。
ignore
错误已记录,启动继续。记录错误超出在事件ri志的范围,不再给用户作出提示。
binpath= BinaryPathName
指定指向服务二进制文件的路径。
group= LoadOrderGroup
指定该服务所属组的名称。组列表存储在注册表的 HKLM\System\CurrentControlSet\Control\ServiceGroupOrder 子项中。默认设置为空值。
tag= {yes | no}
指定是否在 CreateService 调用中获得 TagID。标记仅用于引导启动或系统启动驱动程序。
depend= dependencies
指定必须在此项服务之前启动的服务或组的名称。名称以正斜杠 (/) 分隔。
obj= {AccountName | ObjectName}
指定运行服务将使用的帐户名,或指定运行驱动程序将使用的 Windows 驱动程序对象名。默认设置为 LocalSystem。
displayname= DisplayName
指定一个可以在用户界面程序中用于为用户标识服务的友好的、有意义的名称。例如,一项服务的子项名是对用户毫无意义的 wuauserv,而显示的名称是“自动更新”。
password= Password
指定一个密码。如果使用了非 LocalSystem 的帐户,则此项是必需的。
备注
如果参数及其值之间没有空格,(例如,是 type= own,而不是 type=own),则操作会失败。
示例
下面的示例显示了如何使用 sc config 命令:
sc config NewService binpath= "ntsd -d c:\windows\system32\NewServ.exe"
3、sc continue
为了恢复暂停的服务,要给服务发送一个 CONTINUE 控制请求。
语法
Sc [Se
rverName] continue [ServiceName]
参数
ServerName:略
ServiceName:略
备注
使用 continue 操作来恢复暂停的服务。
下面的示例显示了如何使用 sc continue 命令:
sc continue tapisrv
4、sc control
向服务发送 CONTROL 。
语法
sc [ServerName] control [ServiceName] [{paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB}]
参数
{paramchange | netbindadd | netbindremove | netbindenable | netbinddisable | UserDefinedControlB}
指定要发送到服务的控制。
5、sc create
在注册表和“服务控制管理器”中为服务创建子项和项目。
语法
Sc [ServerName] create [ServiceName] [type= {own | share | kernel | filesys | rec | adapt | interacttype= {own | share}}] [start= {boot | system | auto | demand | disabled}] [error= {normal | severe | critical | ignore}] [binpath= BinaryPathName] [group= LoadOrderGroup] [tag= {yes | no}] [depend= dependencies] [obj= {AccountName | ObjectName}] [displayname= DisplayName] [password= Password]
参数:各个参数的作用参见sc config 命令
下面的示例显示了如何使用 sc create 命令:
sc \\myserver create NewService binpath= c:\windows\system32\NewServ.exe
sc create NewService binpath= c:\windows\system32\NewServ.exe type= share start= auto depend= "+TDI Netbios"
6、sc delete
从注册表中删除服务子项。如果服务正在运行或者另一个进程有一个该服务的打开句柄,那么此服务将标记为删除。
语法
Sc [ServerName] delete [ServiceName]
参数:略
备注
使用“添加或删除程序”删除 DHCP、DNS 或任何其他内置的操作系统服务。“添加或删除程序”不仅会删除该服务的注册表子项,而且还会卸载该服务并删除其所有的快捷方式。
下面的示例显示了如何使用 sc delete 命令:
sc delete newserv
7、sc descrīption
设置服务的描述字符串。
语法
Sc [ServerName] descrīption [ServiceName] [Descrīption]
参数:略
描述
为指定服务指定描述。这个描述的内容可以在控制面板-管理工具-服务里通过查看该服务的属性看到。如果没有指定字符串,则不会修改该服务的描述。不限制服务描述中可包含的字符数。
示例
下面的示例显示了如何使用 sc descrīption 命令:
sc descrīption newserv "Runs quality of service control."
8、sc enumdepend
枚举依赖此服务的系统组件,这也可以从控制面板-管理工具-服务里通过查看该服务的属性中的依存关系选项卡看到(“下面的系统组件依赖此服务
”下面的部分)
语法
Sc [ServerName] enumdepend [ServiceName] [BufferSize]
参数
BufferSize
以字节为单位指定枚举缓冲区的大小。默认值为 1024 字节。
备注
如果缓冲区不够大,enumdepend 操作只会部分输出依存关系,并指定输出所有依存关系所需的额外缓冲区大小。如果输出被截断,请重新运行该操作并指定更大的缓冲区大小。
下面的示例显示了如何使用 sc enumdepend 命令:
sc enumdepend rpcss 5690
sc enumdepend tapisrv