[ DOSコマンド ] Windowsサービスのインストールとアンインストール ( sc create )

Pocket

ここでは、作成したWindows サービスプログラムのインストールとアンインストールを行うサンプルスクリプトを掲載しています。

スポンサーリンク

Windows サービス一覧

サービスは、コントロールパネルのサービスから確認することができます。よくわかりませんが、沢山のサービスが登録・起動されているようです。なんだか見られると恥ずかしいです。

サービスの一覧を確認

サービスの一覧を確認

Windowsサービスのインストール

作成したサービスの実行ファイルをインストールして、サービス画面から開始や停止を行えるようにするには、sc create コマンドを実行します。

sc create SVC1 binPath= "E:\test\svc1.exe" DisplayName= "サービス1です" description= "サービス1の説明" start= auto
sc create SVC2 binPath= "E:\test\svc2.exe" DisplayName= "サービス2です" start= auto depend= SVC1
  • SVC1、SVC2 はサービス名になります。他のサービスと重複しないような名前をつける必要があります。
  • binPath で実行ファイルのパスを設定します
  • DisplayName は、サービス一覧で表示される名前(表示名)になります
  • description は、サービス一覧で表示される説明になります
  • start でスタートアップの種類を指定します。

スタートアップの種類は下表の中から選択します。

スタートアップの種類 内容
auto 自動
demand 手動
disabled 無効
delayed-auto 自動(遅延実行)

depend は依存関係を設定します。上記の例では SVC2 が SVC1 に依存しています。ヒモのようなものです。うらやましい限りです。SVC2 が単独で起動することはできません。SVC2 を開始した場合、SVC1 が起動していないと SVC1 が起動されます。停止も同様です。それが、ヒモとして生きると言うことです。なお、SVC1 は SVC2 に依存されていますが、他のサービスプログラムに依存していませんので、単独で、開始・停止できます。

Windowsサービスのアンインストール

次はサービスのアンインストールです。sc delete 「サービス名」でサービスのアンインストールを行うことができます。上記でインストールしたサービスプログラムをアンインストールする場合は、次のようにコマンドを発行します。

sc delete SVC1
sc delete SVC2

管理者権限で実行する

なお、インストールやアンインストール時に、[SC] OpenService FAILED 5:アクセスが拒否されました。とエラーになった場合には、管理者権限で実行することで解消されるはずです。

なお、サービス名はサービス画面から簡単に確認することができますので、誰でもアンインストールすることができてしまいます。ただし、何かがおかしくなるか、最悪、手がつけられないような状態になるかもしれません。好奇心からアンインストールしないようにしましょう(しないと思いますが)。

SC サービスコントローラーコマンド一覧

sc create と sc delete 以外の、サービスの開始 ( sc start ) や停止 ( sc stop ) や一時停止 ( sc pause ) なども sc コマンドで送信することができます。詳細は以下のリンクより確認できます。

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *