【Windowsサービス】Windowsサービス ~ サービスのインストール etc ~

■ はじめに

 * 自分で登録したサービスを登録する場合、SCコマンドを使う

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

【1】scコマンドを利用する方法
【2】installutilコマンドを利用する方法

【1】scコマンドを利用する方法

構文
sc create 【サービス名】 binPath= "【サービスの実行ファイル】"
注意
* 『binPath=』の後は、必ず「半角スペース」が入ることに注意!
サンプル
sc create SmapleService binPath= "C:\Program Files\SmapleService.exe"

【2】installutilコマンドを利用する方法

 * 以下の関連記事で実際使用している。
https://blogs.yahoo.co.jp/dk521123/37948659.html
手順
[1] [スタートメニュー]-[Visual Studio 2017]-[開発者コマンドプロンプト for VS2017]を右クリックし、
    [その他]-[管理者として実行]を選択
[2] 「開発者コマンドプロンプト for VS2017」で「installutil [exeファイル]」を実行する
''' サンプル '''
{{{
cd C:\source\repos\WindowsService1\WindowsService1\bin\Debug
installutil WindowsService1.exe

 => 「トランザクション インストールが完了しました。」が表示

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

【1】scコマンドを利用する方法
【2】installutilコマンドを利用する方法

 ※ 【1】だとEXEファイルがなくても強制的にアンインストール(削除)可能

【1】scコマンドを利用する方法

構文
sc delete 【サービス名】
サンプル
sc delete SmapleService
注意
 * 【サービス名】は、サービスの表示名ではない
  => サービスを右クリックし[プロパティ]で「サービス名」で知ることができる

【2】installutilコマンドを利用する方法

 * 以下の関連記事で実際使用している。
https://blogs.yahoo.co.jp/dk521123/37948659.html
手順
[1] [スタートメニュー]-[Visual Studio 2017]-[開発者コマンドプロンプト for VS2017]を右クリックし、
    [その他]-[管理者として実行]を選択
[2] 「開発者コマンドプロンプト for VS2017」で「installutil /u [exeファイル]」を実行する
''' サンプル '''
{{{
cd C:\source\repos\WindowsService1\WindowsService1\bin\Debug
installutil /u WindowsService1.exe

Windowsサービスの現在状態の確認

 * 要するに、現在、何のサービスが登録されているかを閲覧できる

構文

sc query 【サービス名】

サンプル

sc query SmapleService


関連記事

Windowsサービス

Windowsサービス ~ 基本編 ~
https://blogs.yahoo.co.jp/dk521123/31702889.html
Windowsサービス ~ Hello World編 ~
https://blogs.yahoo.co.jp/dk521123/37948659.html
SCコマンド ~ サービスの制御 ~
https://blogs.yahoo.co.jp/dk521123/29631029.html
VS Express で Windowsサービス のテンプレート作成
https://blogs.yahoo.co.jp/dk521123/31706797.html
ServiceControllerクラス ~サービスをコントロールする~
https://blogs.yahoo.co.jp/dk521123/31737290.html
Windwsサービスに関するトラブルシューティング
https://blogs.yahoo.co.jp/dk521123/14491769.html