nscontrol enable コマンド

更新 : 2005 年 12 月 5 日

指定した SQL Server Notification Services のインスタンス、アプリケーション、またはコンポーネントを有効にします。

構文

nscontrol enable 
    [-nologo]
    [-help]
    [< component > [...n]]
        -name instanceName
    [-server databaseServer]
    [-application applicationName]
    [-sqlusername sqlUserName -sqlpassword sqlPassword]

< component > ::=
    -events [systemName]
    | -generator
    | -distributor [ systemName ]
    | -subscriptions
    | -subscribers 

引数

  • -nologo
    nscontrol コマンドを実行するときに、製品とバージョンについてのメッセージを表示しないようにします。
  • -help
    コマンドの構文を表示します。
  • < component >
    有効にするコンポーネントを指定します。nscontrol enable を実行するときに指定できるコンポーネントの数は 0 以上です。

    コンポーネント名を省略すると、インスタンスまたはアプリケーションのすべてのコンポーネントが有効になります。コンポーネントを指定し、-application 引数で指定するアプリケーション名を省略すると、そのインスタンスがホストするすべてのアプリケーションを対象として、指定したものと一致するすべてのコンポーネントが有効になります。

    < component> には次の引数のいずれかを指定できます。

    引数 説明

    -distributor [systemName]

    インスタンスまたはアプリケーションのディストリビューションを有効にします。ディストリビュータのシステム名を指定すると、そのシステムでのディストリビュータのみが有効になります。ディストリビュータのシステム名を省略すると、インスタンスまたはアプリケーションのすべてのディストリビュータが有効になります。

    -events [systemName]

    インスタンスまたはアプリケーションについて、ホストされたイベント プロバイダを有効にします。システム名と共に -events を指定すると、そのシステムでのホストされたイベント プロバイダのみが有効になります。システム名を省略すると、インスタンスまたはアプリケーションに対して、すべてのホストされたイベント プロバイダが有効になります。

    -generator

    ジェネレータを有効にします。

    -subscriptions

    サブスクリプション管理を有効にします。

    -subscribers

    Notification Services インスタンスに対するサブスクライバ管理を有効にします。

  • -nameinstanceName
    nscontrol enable によって影響を受けるインスタンスの名前を指定します。–application またはコンポーネントを指定せずに –name 引数を指定した場合、nscontrol ユーティリティは、すべてのインスタンス アプリケーションとコンポーネントを有効にします。

    -name 引数を -server 引数と併用する場合の詳細については、-server 引数を参照してください。

  • -serverdatabaseServer
    インスタンス データベースおよびアプリケーション データベースをホストするサーバーの名前を指定します。SQL Server の名前付きインスタンスを使用してこれらのデータベースをホストする場合、<servername>\<instancename> 形式を使用してサーバー名とインスタンス名を指定する必要があります。

    以前に nscontrol register コマンドを使用してインスタンスを登録したことのあるシステムで nscontrol enable を実行する場合は、-server 引数ではなく、-name 引数を使用します。nscontrol ユーティリティは、インスタンスのレジストリ情報を読み取ることで SQL Server インスタンスの名前を判断します。

    インスタンスが登録されていないシステムで nscontrol enable を実行する場合、-name 引数と -server 引数の両方を使用する必要があります。これは、nscontrol ユーティリティでは、インスタンス データベースを検索する場合に Notification Services インスタンスの名前と SQL Server インスタンスの名前の両方が必要となるためです。

    -server 引数を指定した場合、nscontrol ユーティリティはインスタンスのレジストリ値をすべて無視します。

  • -applicationapplicationName
    1 つまたはすべてのコンポーネントを有効にするアプリケーションの名前を指定します。アプリケーション名を省略すると、そのインスタンスがホストするすべてのアプリケーションに対して、指定したコンポーネントが有効になります。
  • -sqlusernamesqlUserName
    SQL Server への接続に使用される SQL Server ログインを指定します。

    SQL Server 認証を使用して SQL Server に接続する場合、この引数を使用してログインを指定します。また、-sqlpassword 引数を使用してパスワードを指定します。

    Windows 認証を使用している場合は、-sqlusername 引数と -sqlpassword 引数は指定しないでください。

    ms162798.note(ja-jp,SQL.90).gif重要 :
    可能な場合は、Windows 認証を使用します。
  • -sqlpasswordsqlPassword
    ‑sqlusername ログインに関連付けられているパスワードを指定します。この引数は、-sqlusername 引数と共に使用する必要があります。

解説

nscontrol enable コマンドは、データベース内の値を更新することで、指定されたコンポーネントの状態を "有効化中" に変更します。インスタンスの状態は、インスタンス データベースに格納されます。それぞれのコンポーネントの状態は、アプリケーション データベースに格納されます。

nscontrol enable を実行すると、Notification Services は目的の状態への変更をすべてのコンポーネントにブロードキャストします。実行中のすべてのコンポーネントが変更に応答した後で、状態が "有効化中" から "有効" に変更されます。サブスクライバ コンポーネントとサブスクリプション コンポーネントを除き、コンポーネントの状態を "有効化中" から "有効" に変更するには、エンジン (通常は、NS$instance_name Windows サービス) が実行されている必要があります。ただし、この操作は保留になっている処理を取り消すだけなので、"有効化中" から "無効" または "無効化中" から "有効" に状態を変更する場合にサービスが実行されている必要はありません。

nscontrol enable によってデータベースが変更されると、インスタンス、アプリケーション、およびコンポーネントの現在の状態が表示されます。状態値の説明については、「インスタンス、アプリケーション、およびコンポーネントの状態表示」を参照してください。

NS$<instance_name> サービスが開始されると、エンジンは実行する場所 (ホスト名) を判別して、この値を、各ディストリビュータ、ホストされたイベント プロバイダ、およびジェネレータの SystemName 値と比較します。ホスト名が SystemName 値と一致した場合、サービスはコンポーネントの状態を調べます。コンポーネントが有効になっている場合、コンポーネントが実行されます。

サービスが実行されている間、コンポーネントは 30 秒ごとにデータベースを調べ、ホストされたイベント プロバイダ、ジェネレータ、およびディストリビュータの状態を判断します。

サブスクライバおよびサブスクリプションの状態はデータベース サーバーにキャッシュされるため、サブスクリプション管理オブジェクトは、サブスクリプションまたはサブスクライバ処理を実行する前にこの状態を調べます。

権限

各アプリケーション データベースとインスタンス データベースにおける NSAdmin データベース ロールのメンバシップを使うことで、nscontrol enable の実行に使用するアカウント、つまり -sqlusername 引数で指定する SQL Server ログインに適切な権限を設定できます。db_owner データベース ロール、sysadmin 固定サーバー ロール、および dbcreator 固定サーバー ロールのメンバも、nscontrol enable を実行できます。

アカウントには Notification Services バイナリ ファイルを実行するための権限も必要です。この権限は、Windows の Administrators グループおよび SQLServerNotificationServicesUser グループのメンバに与えられます。

A. Notification Services のインスタンスを有効にする

次の例では、StockInstance という名前の Notification Services インスタンス全体を有効にします。インスタンスは、次のコマンドを実行するコンピュータに登録されている必要があります。

nscontrol enable -name StockInstance

B. 1 つのアプリケーションを有効にする

次の例では、Notification Services の StockInstance インスタンス上にある Stock アプリケーションのすべてのコンポーネントを有効にします。nscontrol コマンドは、Windows 認証を使用して SQL Server に接続します。インスタンスは、コマンドを実行するコンピュータに登録されている必要があります。

nscontrol enable -name StockInstance -application Stock

C. ホストされたすべてのイベント プロバイダを有効にする

次の例では、Notification Services の StockInstance インスタンス内にあるすべてのアプリケーションに対して、ホストされたイベント プロバイダを有効にします。nscontrol****コマンドは、Windows 認証を使用して SQL Server に接続します。インスタンスは、コマンドを実行するコンピュータに登録されている必要があります。

nscontrol enable -name StockInstance -events

D. 管理コンピュータからインスタンスを有効にする

StockInstance が登録されていないコンピュータから nscontrol enable を実行する場合、-server 引数を使用して、SQL Server インスタンスの名前を指定する必要があります。次の例では、データベースが nsuetest という名前の SQL Server インスタンス上にある場合に、インスタンスを有効にします。nscontrol コマンドは、Windows 認証を使用して SQL Server に接続します。

nscontrol enable -name StockInstance -server nsuetest

E. SQL Server 認証を使用して、Notification Services インスタンスを有効にする

次の例では、SQL Server 認証を使用して SQL Server に接続し、StockInstance という名前の Notification Services インスタンス全体を有効にします。インスタンスは、次のコマンドを実行するコンピュータに登録されている必要があります。

nscontrol enable -name StockInstance -sqlusername SqlUser 
    -sqlpassword sQl-P@sWd

参照

関連項目

nscontrol ユーティリティ

その他の技術情報

インスタンス、アプリケーション、またはコンポーネントの有効化および無効化

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

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