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 の名前付きインスタンスを使用してインスタンス データベースをホストする場合、<servername>\<instancename> 形式を使用してサーバー名とインスタンス名を指定する必要があります。データベース サーバー名を指定しない場合、nscontrol register では、ローカル サーバー名が使用されます。
  • -service
    サーバー上の Notification Services のインスタンスを制御する NS$instance_name Windows サービスを作成します。

    通常、ホストされたイベント プロバイダ、ジェネレータ、またはディストリビュータを実行するすべてのサーバーでは、-server 引数を使用します。サブスクリプションの管理インターフェイス、ホストされていないイベント プロバイダ、または管理アプリケーションのみを実行するサーバーでは、この引数を使用する必要はありません。

    独自のアプリケーションで Notification Services エンジンをホストしている場合は、-service 引数を使用しないでください。エンジンのホスティングの詳細については、「Notification Services エンジンのホスト」を参照してください。

  • -serviceusernameNSServiceUserName
    Windows サービスがローカル リソースおよびリモート リソースへアクセスするために使用する Windows アカウントを指定します。Windows 認証を使用する場合、Windows サービスはこのアカウントを使用して SQL Server にログインし、インスタンスおよびアプリケーション データベースにアクセスします。

    ローカル アカウントおよびドメイン アカウントでは、この引数と -servicepassword 引数を共に使用する必要があります。NetworkService のような組み込みアカウントには、パスワードはありません。

    Microsoft Windows XP では、-serviceusername-servicepassword が指定されていない場合は、既定のアカウント NTAUTHORITY\NetworkService が使用されます。他のオペレーティング システムでは、-serviceusername-servicepassword は必須です。

    ms162762.note(ja-jp,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(ja-jp,SQL.90).gifメモ :
    サービスに SQL Server ユーザー名とパスワードを割り当てると、この情報は暗号化され、レジストリに格納されます。この情報を格納しないようにするには、代わりに Windows 認証を使用します。
  • -sqlpasswordNSServiceSqlPwd
    ‑sqlusername ログインに関連付けられているパスワードを指定します。この引数は、-sqlusername 引数と共に使用する必要があります。
  • -argumentkeykey
    Notification Services データベースに格納される配信チャネル引数とイベント プロバイダ引数を暗号化するための値を指定します。キーは、-service 引数が指定された場合にだけ使用され、それ以外の場合には無視されます。

    暗号キーを使用してインスタンスを登録する場合は、インスタンスの作成時および更新時と同じキーを使用する必要があります。このためには、構成ファイルの EncryptArguments の値が true であることが必要です。

    キーは最大 2,500 文字の文字列です。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 コマンドにより、そのキーが暗号化され、レジストリに格納されます。このキーはセキュリティで保護されているので、ローカルの Administrators グループのメンバと NS$instance_name サービスを実行するアカウントだけがそのキーを読み取ることができます。

権限

nscontrol register の実行に使用するアカウントには、Notification Services バイナリ ファイルを実行するための権限も必要です。この権限は、Windows の Administrators グループおよび SQLServerNotificationServicesUser グループのメンバに与えられます。Windows サービスおよびパフォーマンス カウンタを作成する場合、アカウントは Administrators グループのメンバである必要があります。

Notification Services 用の NS$instance_name Windows サービスに必要な権限の詳細については、「Notification Services のセキュリティの設定」を参照してください。

次の例は、インスタンスを登録する 3 つの異なる方法を示しています。

A. インスタンスを登録し、Windows サービスを作成する

次の例では、Windows 認証を使用して SQL Server に接続し、StockInstance という名のインスタンスを登録します。次の引数を使ってインスタンスを登録すると、インスタンスの Windows サービスが作成され、Windows サービスで使用されるユーザー名とパスワードが定義されます。このユーザー名とパスワードによって、SQL Server へのアクセス、Windows リソースの起動、および 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(ja-jp,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 要素 (ICF)
Notification Services エンジンのホスト

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

追加内容
  • Windows の SQLServerNotificationServicesUser グループに関する情報を追加。