windows SC 命令

来源:互联网 发布:嵌入式和单片机的区别 编辑:程序博客网 时间:2024/05/01 17:52

与“服务控制器”和已安装设备通讯。SC.exe 检索和设置有关服务的控制信息。可以使用 SC.exe 来测试和调试服务程序。可以设置存储在注册表中的服务属性来控制如何在启动时和作为后台程序运行时启动服务应用程序。SC.exe 的参数可以配置指定的服务,检索当前服务的状态,也可以停止和启动服务。可以生成批处理文件来调用不同的 SC.exe 命令以自动启动或关闭服务序列。SC.exe 提供的功能类似于“控制面板”中“管理工具”项中的“服务”。

有关命令的语法,请单击下面任一 sc 命令:

sc boot

表明最近的启动是否应该存储为上次已知的正常配置。

语法

sc [ServerName] boot [{bad|OK}]

参数

ServerName
指定服务所在的远程服务器名称。名称必须采用通用的命名惯例 (UNC) 格式("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
[{bad|OK}]
指定最近的启动是否错误或它是否应该存储为上次已知的正常配置。
/?
在命令提示符显示帮助。

范例

下面的范例显示了如何使用 sc boot 命令:

sc boot ok
sc boot bad

sc config

修改注册表和“服务控制管理器”数据库中的服务项的值。

语法

sc [ServerName] config [ServiceName] [type= {own|share|kernel|filesys|rec|adapt|interact type= {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]

参数

ServerName
指定服务所在的远程服务器名称。名称必须采用通用的命名惯例(UNC)格式("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}
指定该服务类型。值 说明 own服务以其自身的进程运行。不与其它服务共享可执行文件。这是默认设置。share服务作为共享进程运行。它与其它服务共享一可执行文件。kernel驱动程序filesys文件系统驱动程序。rec文件系统识别驱动器(表示计算机上使用的文件系统)。adapt适配器驱动器(表示键盘、鼠标、磁盘驱动器这样的硬件项)。interact服务可以与桌面交互作用,接收用户的输入。交互服务必须以在 LocalSystem 帐户下运行。该类型必须与 type= owntype= 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错误已记录,启动继续。记录错误超出在事件日志的范围,不再给用户作出提示。
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"

sc continue

为了继续暂停的服务,要给服务发送一个 CONTINUE 控制请求。

语法

sc [ServerName] continue [ServiceName]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
/?
在命令提示符显示帮助。

注释

  • 使用 continue 操作来继续暂停的服务。

范例

下面的范例显示了如何使用 sc continue 命令:

sc continue tapisrv

sc control

发送给服务CONTROL B。

语法

sc [ServerName] control [ServiceName] [{paramchange|netbindadd|netbindremove|netbindenable|netbinddisable|UserDefinedControlB}]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
{paramchange|netbindadd|netbindremove|netbindenable|netbinddisable|UserDefinedControlB}
指定要发送到服务的控制。
/?
在命令提示符显示帮助。

sc create

为服务在注册表和“服务控制管理器”中创建子项和入口。

语法

sc [ServerName] create [ServiceName] [type= {own|share|kernel|filesys|rec|adapt|interact type= {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]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
type= {own|share|kernel|filesys|rec|adapt|interact type= {own|share}}
指定该服务类型。默认类型为 type= own。值 说明 own服务以其自身的进程运行。不与其它服务共享可执行文件。这是默认设置。share服务作为共享进程运行。它与其它服务共享一可执行文件。kernel驱动程序filesys文件系统驱动程序。rec文件系统识别驱动器(表明在计算机上使用的文件系统)。interact服务可以与桌面交互作用,接收用户的输入。交互服务必须以在 LocalSystem 帐户下运行。该类型必须与 type= owntype= shared(例如, type= interact type= own)结合使用。自身使用 type= interact 将会产生一个无效参数错误。
start= {boot|system|auto|demand|disabled}
指定服务的起始类型。默认的起始类型是 start= demandboot由启动引导程序加载的设备驱动器。system在核心初始化过程中启动的设备驱动器。auto每次计算机重新启动时,甚至没有人登录计算机时,都能自动开始的服务。demand必须手动启动的服务。如果没有指定“start=”,这就默认值。disabled不能启动的服务。要启动一个禁用的服务,把启动类型更改为其他值。
error= {normal|severe|critical|ignore}
如果在启动中,服务器启动失败,则指定错误的严重性。默认设置为 asciinormal将记录错误,并且显示消息对话框,通知用户服务启动失败。启动将会继续这是默认设置。severe记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。这可能是由于计算机能够重新启动,但服务器却仍然不能运行。critical记录错误(如果存在)。计算机尝试以最新的有效配置重新启动。如果上次已知正常的配置失败,启动也将失败,启动过程就会以“蓝屏”错误而停止。ignore错误已记录,启动继续。记录错误超出在事件日志的范围,不再给用户作出提示。
binpath= BinaryPathName
指定一个进入服务二进制文件的路径。binpath= 没有默认值,必须要给出此字符串。
group= LoadOrderGroup
指定一个该服务为其中成员的组名。组列表储存在注册中的 HKLM/System/CurrentControlSet/Control/ServiceGroupOrder 子项中。默认设置为空值。
/hidden:{yes | no}
指定是否在“CreateService”调用中获得 TagID。标记仅用于根启动或系统启动驱动程序。
depend= dependencies
指定必须要在此项服务之前启动的服务名或组名。前面斜线 (/) 分离开来的名字。
obj= {AccountName|ObjectName}
指定一个将运行的服务的账户名,或指定一个将会运行的驱动程序的 Windows 驱动程序对象名。
displayname= DisplayName
指定被用户界面程序用来标识服务的友好名称。
password:password
指定一个密码。如果使用的不是 LocalSystem 的帐户,密码是必需的。
/?
在命令提示符显示帮助。

注释

  • 如果参数及其值之间没有空格,(例如,是 type= own, 而不是 type=own),则操作会失败。

范例

下面的范例显示了如何使用 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"

sc delete

从注册表中删除服务子项。如果服务正在运行或者另一个进程有一个该服务的打开句柄,那么为了删除而标记该服务。

语法

sc [ServerName] delete [ServiceName]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
/?
在命令提示符显示帮助。

注释

  • 使用“添加或删除程序”删除 DHCP、DNS 或任何其它内置的操作系统服务。“添加或删除程序”不只删除该服务的注册表子项,而且还卸除该服务并删除其所有的快捷方式。

范例

下面的范例显示了如何使用 sc delete 命令:

sc delete newserv

sc description

设置服务的描述字符串。

语法

sc [ServerName] description [ServiceName] [Description]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
说明
为指定服务指定描述。如果没有指定字符串,则不会修改该服务的描述。对包含在服务描述中的字符数量没有限制。
/?
在命令提示符显示帮助。

范例

下面的范例显示了如何使用 sc description 命令:

sc description newserv "Runs quality of service control."

sc enumdepend

列出只有运行了指定服务才能够运行的服务。

语法

sc [ServerName] enumdepend [ServiceName] [BufferSize]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
BufferSize
以字节为单位指定枚举缓存区的大小。默认值为 1024 字节。
/?
在命令提示符显示帮助。

注释

  • 如果缓冲区不够大,enumdepend 操作只会部分输出依存服务,并指定输出所有依存服务所需的额外缓冲区大小。如果输出被截断,重新运行该操作并指定更大的缓冲区大小。

范例

下面的范例显示了如何使用 sc enumdepend 命令:

sc enumdepend rpcss 5690
sc enumdepend tapisrv

sc failure

指定服务失败时要采取的操作。

语法

sc [ServerName] failure [ServiceName] [reset= ErrorFreePeriod] [reboot= BroadcastMessage] [command= CommandLine] [actions= FailureActionsAndDelayTime]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
reset= ErrorFreePeriod
指定没有失败的周期长度(单位为秒),此后失败计算器的应该重置为 0。这个参数必须与 actions= 参数结合使用。
reboot= BroadcastMessage
指定服务失败时要广播的消息。
command= CommandLine
指定服务失败时要运行的命令行。有关在失败时如何运行批处理或 VBS 文件的信息,请参阅“注释”。
actions= FailureActionsAndDelayTime
指定失败操作及其延迟时间(单位为毫秒),以正斜杠 (/) 隔开。下列操作有效:runrestartreboot。此参数必须与 reset= 参数结合使用。在失败时不采取操作请使用 actions= ""
/?
在命令提示符显示帮助。

注释

  • 不是所有的服务都允许更改其失败选项。其中一些作为服务集的一部分运行。
  • 要在失败时运行批处理文件,请指定 cmd.exe Drive:/FileName.batcommand= 的参数,其中 Drive:/FileName.bat 是批处理文件的完整的合格名称。
  • 要在失败时运行 VBS 文件,请指定 cscript drive:/myscript.vbscommand= 的参数,其中 drive:/myscript.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
sc 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

sc getdisplayname

获得与特定服务关联的显示名称。

语法

sc [ServerName] getdisplayname [ServiceName] [BufferSize]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceName
指定由 getkeyname 操作返回的服务名。
BufferSize
指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
/?
在命令提示符显示帮助。

范例

下面的范例显示了如何使用 sc getdisplayname 命令:

sc getdisplayname clipsrv
sc getdisplayname tapisrv
sc getdisplayname sharedaccess

sc getkeyname

使用特定服务的显示名称作为输入会获得与其相关联的键名。

语法

sc [ServerName] getkeyname [ServiceDisplayName] [BufferSize]

参数

ServerName
指定服务所在的远程服务器名称。该名称必须使用 UNC 格式 ("//myserver")。若要在本机上运行 SC.exe,请忽略此参数。
ServiceDisplayName
指定服务的显示名称。
BufferSize
指定缓冲区大小(以字节为单位)。默认值为 1024 字节。
/?
在命令提示符显示帮助。

注释

  • 如果 ServiceDisplayName 包含空格,请使用引号将文本引起来(例如,"Service Display Name")。

范例

下面的范例显示了如何使用 sc getkeyname 命令:

sc getkeyname "remote procedure call (rpc)"
sc getkeyname "internet connection sharing"
sc getkeyname clipbook