バッチファイルで、サービスの自動再起動をする処理を書いています。
サービスの停止処理は、net stop ,サービスの開始処理は net start コマンドを使います。
で、サービス停止時に、そのサービスに依存する別のサービスがあると、下記のように問い合わせてきます。
次のサービスは xxxx サービスに依存しています。
xxx サービスを停止すると、これらのサービスも停止されます。
yyyy
この操作を続行しますか? (Y/N) [N]:
この問い合わせに自動で y とする方法ですが、net stop に /y オプションを付けるといいようです。
(calsの場合は、(SQL Server)SQLサーバの無人インストールとインストール後の各種設定設定 Part3 にあるように echo y とパイプしてましたが、net stop では使えませんでした。)
下記のような感じです。
net stop "spooler" /y
これで、spooler サービスに依存する全てのサービスを停止できます。
今回はこのサービスの再起動なので、開始処理も必要です。
しかし、net start では依存するサービスの開始はできないようですね。
個別に指定して書くしかありませんか。。。
ちなみに、XP,Server 2003 以降は sc コマンドとかいうのがあり、これでサービスの制御もできるようです。
参考:
サービスの開始・停止・再起動 - コマンドプロンプトを使用したバッチファイル サービスの再起動をしてくれるバッチファイルで、ログも残してくれます。