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 の利点は、レジストリおよびサービス コントロール マネージャのデータベースにサービスの情報を作成または構成する便利な方法が用意されていることです。レジストリに手動でエントリを作成し、サービス コントロール マネージャのデータベースが更新されるようにコンピュータを再起動して、サービスを構成する必要はありません。

Sc.exe では、以下の構文を使用します。

構文 1 (Sc.exe を実行するには構文 1 を使用します。)
sc [Servername] Command Servicename [Optionname= Optionvalue...]
構文 2 (ヘルプ情報を表示するには構文 2 を使用します。ただし、query コマンドは除きます。)
sc [Command]

パラメータ

  • Servername
    省略可能です。リモート コンピュータでコマンドを実行する場合は、サーバーの名前を指定します。サーバー名の前には 2 つのバックスラッシュ文字 (\) を使用する必要があります (例、\\myserver)。Sc.exe をローカル コンピュータで実行する場合は、このパラメータを指定しないでください。
  • Command
    sc コマンドを指定します。多くの sc コマンドでは、指定したコンピュータの管理者特権が必要です。Sc.exe では、以下のコマンドがサポートされています。
    Config
    サービスの構成を変更します (永続的に変更されます)。

    Continue
    サービスに Continue 制御要求を送信します。

    Control
    サービスに Control を送信します。

    Create
    サービスを作成します (作成したサービスをレジストリに追加します)。

    Delete
    サービスを (レジストリから) 削除します。

    EnumDepend
    サービスの依存関係を列挙します。

    GetDisplayName
    サービスの表示名 (DisplayName) を取得します。

    GetKeyName
    サービスのキー名 (ServiceKeyName) を取得します。

    Interrogate
    サービスに Interrogate 制御要求を送信します。

    Pause
    サービスに Pause 制御要求を送信します。

    qc
    サービスの構成を問い合わせます。詳細については、SC QC のヘルプを参照してください。

    Query
    サービスの状態を問い合わせるか、サービスの種類の状態を列挙します。詳細については、SC QUERY のヘルプを参照してください。

    Start
    サービスを開始します。

    Stop
    サービスに Stop 要求を送信します。
  • Servicename
    レジストリの Service キーで指定された名前を指定します。この名前は、表示名とは異なることに注意してください。表示名は、net start コマンド、およびコントロール パネルの [サービス] ツールを使用したときに表示される名前です。Sc.exe では、サービスの主識別子として、サービス キー名が使用されます。
  • Optionname
    Optionname パラメータおよび Optionvalue パラメータを使用すると、オプションのコマンド パラメータの名前と値を指定できます。Optionname と等号の間にスペースがないことに注意してください。オプションのパラメータでは、0 個以上の名前と値の組み合わせを指定できます。
  • Optionvalue
    Optionname で指定されたパラメータの値を指定します。有効な値の範囲は、コマンドによって異なることがあります。使用できる値の一覧については、各コマンドのヘルプを参照してください。
多くのコマンドでは、実行するために管理者特権が必要です。開発を行うコンピュータの管理者としてログインしてください。

sc create コマンドによって、レジストリ、およびサービス コントロール マネージャのデータベースに、サービスのエントリが作成されます。

構文
パラメータ
  • Servername
    省略可能です。リモート コンピュータでコマンドを実行する場合は、サーバーの名前を指定します。サーバー名の前には、2 つのバックスラッシュ文字 (\) を使用する必要があります (例、\\myserver)。SC をローカル コンピュータで実行する場合は、このパラメータを指定しないでください。
  • Servicename
    レジストリの Service キーで指定された名前を指定します。この名前は、表示名とは異なることに注意してください。表示名は、net start およびコントロール パネルの [サービス] ツールを使用したときに表示される名前です。Sc.exe では、サービスの主識別子として、サービス キー名が使用されます。
  • Optionname
    Optionname パラメータおよび Optionvalue パラメータを使用すると、オプションのパラメータの名前と値を指定できます。Optionname と等号の間にスペースがないことに注意してください。オプションのパラメータでは、0 個以上の名前と値の組み合わせを指定できます。sc query コマンドでは、Optionname、Optionvalue の値として以下の値がサポートされています。
    type=own、share、interact、kernel、filesys
    作成するサービスの種類です。オプションの値には、ドライバで使用される種類が含まれています。
    (デフォルト = share)

    start=boot、system、auto、demand、disabled
    サービスのスタートアップの種類です。オプションの値には、ドライバで使用される種類が含まれています。
    (デフォルト = demand)

    error=normal、severe、critical、ignore
    起動中にサービスが開始されない場合のエラーの重大度です。
    (デフォルト = normal)

    binPath=(文字列)
    サービスのバイナリ ファイルのパス名です。このパラメータにはデフォルト値はありません。この文字列を指定する必要があります。

    group=(文字列)
    このサービスが属しているグループ名です。グループの一覧は、レジストリの ServiceGroupOrder の下に格納されています。
    (デフォルト = なし)

    tag=(文字列)
    この文字列が "yes" に設定されている場合、Sc.exe では CreateService 呼び出しから TagId を取得します。ただし、Sc.exe ではタグは表示されません。
    (デフォルト = なし)

    depend=(スペースで区切られた文字列)
    このサービスより前に開始する必要がある、サービスまたはグループの名前です。

    obj=(文字列)
    サービスが実行されるアカウント名です。ドライバでは、この名前は Windows ドライバのオブジェクト名です。
    (デフォルト = LocalSystem)

    DisplayName=(文字列)
    ユーザー インターフェイス プログラムでサービスの識別に使用できる文字列です。

    password=(文字列)
    パスワードの文字列です。この文字列は、LocalSystem 以外のアカウントが使用されている場合に必要です。
Optionvalue
Optionname で指定されたパラメータの値を指定します。サポートされている値の一覧については、Optionname の説明を参照してください。文字列を入力するときに、引用符で囲んだ空白文字を使用すると、空の文字列が渡されます。OptionValue と等号の間にはスペースが入ります。

: sc create コマンドでは、CreateService API 関数の操作が実行されます。

次の例では、\\remotecomputer というコンピュータに "NewService" という名前のサービスのレジストリ エントリが作成されます。
sc \\remotecomputer create 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 にあります。

このサービスは、デフォルトでスタートアップの種類が SERVICE_DEMAND_START である WIN32_SHARE_PROCESS として作成されます。このサービスには依存関係がなく、LocalSystem のセキュリティ コンテキストで実行されます。

次の例では、ローカル コンピュータに、個別のプロセスで実行され、自動的に開始されるサービスが作成されます。このサービスには、TDI グループおよび NetBIOS サービスに対する依存関係があります。スペースで区切られた依存関係を引用符で囲む必要があることに注意してください。
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "+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月19日 - リビジョン: 4.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Server 4.0, Terminal Server Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • 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 (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • 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
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter
キーワード:?
kbhowto kbexpertiseinter kbinfo KB251192
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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