ここでは、作成した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 コマンドで送信することができます。詳細は以下のリンクより確認できます。