ネコの耳に念仏

ネコの耳に念仏

ガンバらない技術ブログを目指します

【PowerShell】アプリケーションを引数付きで Windows サービスに登録する方法【Batch】

アプリケーションを Windows サービスに登録するときに「コンフィグファイルを食わせて登録したいんだけどな~」などなど、引数を付けて登録したい場合があると思います。

そこで今回は、PowerShell コマンドを利用して、任意のアプリケーションを引数付きで Windows サービスに登録する方法を説明します。

アプリケーションを引数付きで Windows サービスに登録する方法

最初に答えを書いてしまうと、PowerShell で次のようなコマンドを実行すれば、アプリケーションを引数付きで Windwos サービスに登録できます。

sc create {任意のサービス名} binPath= "C:\workspace\YourApp.exe {引数1} {引数2} ... {引数N}"

また、すでに登録済みの Windows サービスに引数を追加したい場合は、下記のようなコマンドでOKです。

sc config {任意のサービス名} binPath= "C:\workspace\YourApp.exe {引数1} {引数2} ... {引数N}"

たとえば、任意のフォルダにあるMyApp.exeというアプリケーションに--configオプションでコンフィグファイルを食わせながら「MyAppService」という名前で Windows サービスへ登録するとします。

PowerShellMyApp.exeが格納されているフォルダに移動済みと仮定して、カレントフォルダを表す%~dp0を使用してみます。

また、Windows サービスのスタートアップの種類を「自動」にするため、start=autoを指定します。

この場合、コマンドは下記のようになります。

sc create MyAppService binPath= "%~dp0\MyApp.exe --config %~dp0\myapp.config" start= auto

【余談】登録済みの Windows サービスを削除する方法

ちなみに、登録済みの Windows サービスを削除したい場合は、下記のようなコマンドを叩きます。

sc delete {サービス名}

以上