如何通过使用 Sc.exe 创建 Windows 服务

文章翻译 文章翻译
文章编号: 251192 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

远程创建,并从命令行启动服务,您可以使用资源工具包中包含 SC 工具 (Sc.exe)。

尽管在远程计算机上启动服务,您可以使用 Netsvc.exe 和 Instsrv.exe 工具,这些工具不使您能够远程创建服务。

注意Srvinstw.exe 工具是用于创建远程服务的图形用户界面 (GUI) 版本。Srvinstw.exe 不是一个命令行工具。

更多信息

使用 Sc.exe 可以帮助开发的 Windows 服务。Sc.exe,资源工具包中提供实现对所有在 Windows 服务的控件应用程序编程接口 (API) 函数的调用。您可以通过在命令行上指定这些设置对这些函数的参数。Sc.exe 也显示服务状态,并检索存储在状态结构字段中的值。该工具还允许您指定的远程计算机名称,以便您可以调用服务 API 函数或查看远程计算机上的服务状态结构。

Sc.exe 还允许您调用服务控制的任何 API 函数并从命令行参数的任何变化。此优点是它提供了一种创建或配置注册表和 $ 服务控制管理器数据库中的服务信息的简便方法。您不必通过在注册表中手动创建项,然后重新启动计算机,强制更新其数据库的服务控制管理器来配置该服务。

Sc.exe 使用以下语法:

Syntax1 (使用 Syntax1 运行 Sc.exe)
sc [服务器名] 命令 Servicename [Optionname = Optionvalue...]
Syntax2 (若要显示的除外 查询 命令的帮助信息,使用 Syntax2)
sc [命令]

参数

  • 服务器名
    可选。当您要在远程计算机上运行的命令时,请指定服务器的名称。名称必须以两个反斜杠 (\) 字符开头 (例如对于 \ myserver)。若要在本地计算机上运行 Sc.exe,不提供此参数。
  • 命令
    指定 sc 命令。请注意许多 sc 命令要求在指定的计算机上的管理权限。Sc.exe 支持以下命令:
    配置
    (永久) 服务的配置更改。

    继续
    将继续控制请求发送到服务。

    控件
    将控件发送到服务。

    创建
    创建一个服务 (将其添加到注册表)。

    删除
    删除一项服务 (从注册表中)。

    EnumDepend
    枚举服务依存关系。

    GetDisplayName
    获取服务的显示名称。

    GetKeyName
    获取为服务 ServiceKeyName。

    询问
    将一个 Interrogate 控制请求发送到服务。

    暂停
    将暂停控制请求发送到服务。

    qc
    查询该服务的配置。有关详细的信息,请参阅参考部分"SC QC。

    查询
    查询某个服务的状态或枚举类型的服务的状态。有关详细的信息,请参阅参考部分"SC QUERY。

    启动
    启动服务

    停止
    将停止请求发送到服务。
  • Servicename
    指定提供给注册表中的服务项名称。请注意这是不同于在显示名称 (这是您使用 net start 命令和服务工具中 Control Panel 看到的内容。Sc.exe 服务的主标识符使用服务的密钥名称。
  • Optionname
    Optionname 和 Optionvalue 参数允许您指定的名称和可选的命令参数的值。请注意没有该 Optionname 和等号之间没有空格。您可以提供无,一个,或多个可选参数的名称 / 值对。
  • Optionvalue
    指定由 Optionname 命名参数的值。有效值的范围通常是为每个 Optionname 限制的。可用值一个资源列表的请求为每个命令的帮助。
很多命令需要管理员权限。请确保您是正在执行在开发计算机的管理员。

sc 创建 命令创建该服务有关的条目,在注册表中和在服务控制管理器数据库中。

语法
sc [服务器名] 创建 Servicename [Optionname = Optionvalue...

参数

  • 服务器名
    可选。当您要在远程计算机上运行的命令时,请指定服务器的名称。名称必须以两个反斜杠字符开头 (例如对于 \ myserver)。若要在本地计算机上运行 SC,不提供此参数。
  • Servicename
    指定提供给注册表中的服务项名称。请注意这是不同于显示名称,这是使用 net start 和服务工具,在控制面板中看到的内容。Sc.exe 服务的主标识符使用服务的密钥名称。
  • Optionname
    Optionname 和 Optionvalue 参数允许您指定的名称和可选参数的值。请注意没有该 Optionname 和等号之间没有空格。您可以提供无,一个,或多个可选参数的名称 / 值对。sc 查询 命令会支持下列值: OptionnameOptionvalue
    类型 = 拥有、 共享、 交互,内核,filesys
    您想要创建的服务的类型。Optionvalues 包括驱动程序使用的类型。
    (默认值 = 共享)

    启动 = 引导,系统、 自动、 已禁用的需求
    启动该服务的类型。选项值包括驱动程序使用的类型。
    (默认值 = 按需)

    错误 = 正常、 严重、 重要,忽略
    如果在启动过程中不能启动该服务的错误的严重度。
    (默认值 = 标准)

    binPath =(字符串)
    服务二进制文件的路径名称。没有为此参数默认值。必须提供此字符串。

    组 =(字符串)
    此服务是成员的组的名称。在 ServiceGroupOrder 注册表中存储组的列表。
    (默认值 = 执行任何操作)

    标记 =(字符串)
    如果该字符串设置为"是",Sc.exe CreateService 调用中获得一个 TagId,但是,Sc.exe 不显示标记。
    (默认值 = 执行任何操作)

    取决于 =(空格分隔字符串)
    服务或 $ 在此项服务之前必须启动的组的名称。

    obj =(字符串)
    运行服务帐户的名称。驱动程序,这是 Windows 驱动程序的对象名称。
    (默认值 = 本地系统)

    显示名称 =(字符串)
    一个字符串,它可由用户界面程序用于标识服务。

    密码 =(字符串)
    密码字符串。如果使用非本地系统帐户,这是必需的。
Optionvalue
指定由 Optionname 命名参数的值。请参阅 Optionname 参考有关受支持的值的列表。要将输入字符串时,使用空的引号意味着在传递一个空字符串。 请注意没有 选项值 和等号之间的空间。

注意sc 创建 命令执行 CreateService API 函数的操作。

下面的示例创建名为"NewService"在计算机上的调用该服务的注册表项 \ remotecomputer
sc \\remotecomputer 创建 newservice binpath = c:\nt\system32\newserv.exe
注意在 Windows 2000、 Windows XP、 Windows Server 2003、 Windows Vista 和 Windows Server 2008 中,该 binpath 位于 C:\Windows\System32\Newserv.exe。

默认情况下,此服务被创建为一个 WIN32_SHARE_PROCESS SERVICE_DEMAND_START 开始类型。它不具有所有的依存关系,并在本地系统安全上下文中运行。

下面的示例将创建本地计算机上运行在其自身进程中的一个自动启动服务的服务。TDI 组和 NetBIOS 服务,它具有依赖项。请注意您必须添加引号以空格分隔的依赖项的列表。
sc 创建 newservice binpath = c:\nt\system32\newserv.exe 类型 = 自己开始 = 自动取决于 ="+ tdi netbios"
注意在 Windows 2000、 Windows XP、 Windows Server 2003、 Windows Vista 和 Windows Server 2008 中,该 binpath 位于 C:\Windows\System32\Newserv.exe。

有关进一步的详细信息 Sc.exe 工具,请参阅 Sc dev.txt 文档资源工具包中。本文档中更详细地介绍 Sc.exe。

属性

文章编号: 251192 - 最后修改: 2008年3月4日 - 修订: 4.0
这篇文章中的信息适用于:
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Server 4.0 Terminal Server(终端服务器)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003 Standard Edition
  • Windows Vista Home Basic
  • Windows Vista Home Basic N
  • Windows Vista Home Basic N 64-bit Edition
  • Windows Vista Business
  • Windows Vista Business 64-bit edition
  • Windows Vista Business N
  • Windows Vista Business N 64-bit Edition
  • Windows Vista Home Premium
  • Windows Vista Home Basic 64-bit edition
  • Windows Vista Home Premium 64-bit edition
  • Windows Vista Ultimate
  • Windows Vista Ultimate 64-bit edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
关键字:?
kbmt kbhowto kbexpertiseinter kbinfo KB251192 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 251192
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com