nscontrol register 命令

更新日期: 2005 年 12 月 5 日

创建或更新 Notification Services 实例的注册表项,创建实例的性能计数器,以及创建运行实例所需的 Microsoft Windows 服务。

语法

nscontrol register 
    [-nologo]
    [-help]
    -name instanceName
    [-server databaseServer]
    [-service
        [-serviceusername NSServiceUserName [-servicepassword NSServicePwd]
        [-sqlusername NSServiceSqlUserName  -sqlpassword NSServiceSqlPwd]
        [-argumentkey key]]

参数

  • -nologo
    取消运行 nscontrol 命令时显示的产品和版本声明。
  • -help
    显示命令的语法。
  • -nameinstanceName
    要注册的实例的名称。
  • -serverdatabaseServer
    承载实例数据库的服务器的名称。如果使用 SQL Server 命名实例承载实例数据库,则必须按如下格式指定服务器和实例的名称:<服务器名称>\<实例名称>。如果不指定数据库服务器名称,则 nscontrol register 将使用本地服务器名称。
  • -service
    创建 NS$instance_name Windows 服务,用于控制服务器中的 Notification Services 实例。

    通常,可以对运行宿主事件提供程序、生成器或分发服务器的任意服务器使用 -server 参数。对只运行订阅管理界面、非宿主事件提供程序或管理应用程序的服务器,不需要使用该参数。

    如果 Notification Services 引擎的宿主是您自己的应用程序,则无需使用 -service 参数。有关确定引擎宿主的详细信息,请参阅宿主 Notification Services 引擎

  • -serviceusernameNSServiceUserName
    Windows 服务用于访问本地和远程资源的 Windows 帐户。如果使用的是 Windows 身份验证,Windows 服务还将使用此帐户登录到 SQL Server,并访问实例和应用程序数据库。

    对于本地帐户和域帐户,此参数必须与 -servicepassword 参数一起使用。内置帐户(如 NetworkService)没有密码。

    在 Microsoft Windows XP 中,如果不指定 -serviceusername-servicepassword,则将使用默认帐户 NT AUTHORITY\NetworkService。对于其他操作系统,必须使用 -serviceusername-servicepassword

    ms162762.note(zh-cn,SQL.90).gif注意:
    出于安全性考虑,服务帐户的权限应该尽可能地小,而不应是管理员或 LocalSystem 服务帐户。有关详细信息,请参阅配置 Notification Services 的 Windows 帐户

    如果使用的是 Windows 身份验证,则此帐户必须在实例和应用程序数据库中拥有权限。有关详细信息,请参阅为 Notification Services 实例配置 SQL Server 权限

  • -servicepasswordNSServicePwd
    -serviceusername 关联的密码。此参数必须与 -serviceusername 参数一起使用。
  • -sqlusernameNSServiceSqlUserName
    NS$<instance_name> Windows 服务用于连接到 SQL Server 的 SQL Server 登录名。

    如果使用 SQL Server 身份验证连接到 SQL Server,则必须同时指定 -sqlusername-sqlpassword 参数。

    如果使用的是 Windows 身份验证,则无需指定 -sqlusername-sqlpassword 参数。

    ms162762.note(zh-cn,SQL.90).gif注意:
    如果为服务分配了 SQL Server 用户名和密码,这些信息将被加密并存储在注册表中。若要避免存储这些信息,请改用 Windows 身份验证。
  • -sqlpasswordNSServiceSqlPwd
    -sqlusername 登录名相关联的密码。此参数必须与 -sqlusername 参数一起使用。
  • -argumentkeykey
    用于加密 Notification Services 数据库中存储的传递通道参数和事件提供程序参数的值。只有在指定了 –service 参数时才使用该密钥;其他情况下将忽略该密钥。

    如果使用加密密钥注册实例,则在创建和更新实例时必须使用同一密钥。为此,配置文件中的 EncryptArguments 值必须为 true

    该密钥是一个最多可包含 2500 个字符的字符串。nscontrol register 可以加密该密钥值并将其存储在注册表中;为了使 NS$instance_name Windows 服务可以读取加密的参数,该加密参数必须存储在注册表中。

    nscontrol create 或 SQL Server Management Studio 中的**“新建 Notification Services 实例”**命令创建实例后,该密钥将无法更改。

备注

nscontrol register 命令必须在本地运行。不能在远程服务器中注册 Notification Services。

如果使用 SQL Server 身份验证连接到 SQL Server,则当必须更新该服务所用的 SQL Server 用户名或密码时,必须使用 nscontrol register 或 SQL Server Management Studio 中 Notification Services 的**“注册”**对话框更改登录信息。Notification Services 加密用户名和密码并将其存储在只有管理员和 Windows 服务才能访问的注册表中。

如果使用 -argumentkey 指定加密密钥值,则 nscontrol register 命令将加密该密钥,并将其存储在注册表中。该密钥是经过保护的,只有本地管理员组的成员和运行 NS$instance_name 服务的帐户才能读取该密钥。

权限

用于运行 nscontrol register 的帐户还必须拥有执行 Notification Services 二进制文件的权限;Administrators 和 SQLServerNotificationServicesUser Windows 组的成员会被授予该权限。如果正在创建 Windows 服务和性能计数器,则该帐户必须是 Administrators 组的成员。

有关 NS$instance_name Windows 服务使用 Notification Services 所需权限的信息,请参阅保护 Notification Services 的安全

示例

以下示例阐释了三种不同的实例注册方法。

A. 注册实例并创建 Windows 服务

此示例显示如何通过使用 Windows 身份验证连接到 SQL Server,注册名为 StockInstance 的实例。使用以下参数注册实例将会为该实例创建 Windows 服务,定义 Windows 服务访问 SQL Server(及启动和访问 Windows 资源)所使用的用户名和密码,并提供承载数据库的 SQL Server 实例的名称。

nscontrol register -name StockInstance -server nsuetest -service 
    -serviceusername SvcAcct -servicepassword svC-P@sWd

B. 注册实例但不创建 Windows 服务

此示例显示名为 StockInstance 的实例的以下几种注册方式:

  • 订阅管理界面或独立事件提供程序位于服务器中,但该服务器不运行宿主事件提供程序、生成器或分发服务器。
  • 运行宿主事件提供程序、生成器和分发服务器的 Notification Services 引擎以定义应用程序为宿主,因此不一定需要 Windows 服务。

在上述情况下,必须注册实例以便实例组件可以找到数据库,但无需使用 -server 参数创建 Windows 服务。

还可以使用此示例更新现有注册表项中的数据库服务器名称。

nscontrol register -name StockInstance -server nsuetest

C. SQL Server 身份验证

ms162762.note(zh-cn,SQL.90).gif重要提示:
请尽可能使用 Windows 身份验证。

此示例说明如何注册 Notification Services 的实例,创建 Windows 服务及提供该服务用于连接到 SQL Server 的 SQL Server 身份验证。请注意,该服务同时需要 SQL Server 帐户和密码以及 Windows 帐户和密码。该服务使用 Windows 权限启动和访问非数据库资源,并使用 SQL Server 帐户访问数据库。

nscontrol register -name StockInstance -server nsuetest -service 
    -serviceusername SvcAcct -servicepassword svC-P@sWd 
    -sqlusername SqlUser -sqlpassword sQl-P@sWd

请参阅

参考

nscontrol 实用工具

其他资源

部署 Notification Services 实例
更新注册表信息
EncryptArguments Element (ICF)
宿主 Notification Services 引擎

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2005 年 12 月 5 日

新增内容:
  • 添加了有关 SQLServerNotificationServicesUser Windows 组的信息。