Windowsのコマンドプロンプトは、多くのITプロフェッショナルやエンジニアにとって日常的に使用する強力なツールの1つです。特に、システムのトラブルシューティングや自動化タスクを行う際には欠かせない存在となっています。この記事では、サービスのエラーハンドリング動作(例えば、サービスが異常終了した際の再起動や停止動作)をコマンドプロンプトで設定する方法について解説します。
Windowsサービスとは
Windowsサービスは、Windows OS上でバックグラウンドで実行されるプログラムのことを指します。これらのサービスは、OSの起動時から自動的に実行されるものや、特定のトリガーに応じて実行されるものがあります。例えば、Windows UpdateやWindows Defenderなど、多くの基本的な機能がサービスとして提供されています。
サービスのエラーハンドリング動作
サービスが何らかの理由で停止した場合、それに対する対応動作を設定することができます。これを「エラーハンドリング動作」と呼びます。具体的には、サービスが異常終了した場合に、何もしない、再起動する、システムを再起動するなどの動作を設定することができます。
scコマンドを利用した設定方法
Windowsのコマンドプロンプトには「sc」というコマンドが用意されており、これを使用してサービスの管理や設定を行うことができます。
sc failure [サービス名] reset= [時間] actions= [動作]/[遅延時間]//...
このコマンドの詳細は以下の通りです。
– [サービス名]:設定を行いたいサービスの名前。
– [時間]:エラーが何回発生した後にカウンタをリセットするかの時間(分)。
– [動作]:エラー発生時の動作。run, stop, restartなど。
– [遅延時間]:エラー発生後、設定動作を実行するまでの遅延時間(秒)。
具体的な例
例として、「Windows Update」サービスが異常終了した場合、1分後に再起動する設定を行いたい場合のコマンドは以下の通りとなります。
sc failure wuauserv reset= 60 actions= restart/60
応用例1: サービスの停止履歴を確認する
エラーハンドリング動作を設定する前に、特定のサービスが過去に何回停止したか、その履歴を確認することもできます。
wevtutil qe System /q:"*[System[Provider[@Name='Service Control Manager'] and (EventID=7036)]]" /c:10 /rd:desc
このコマンドは、最新の10件のサービスの開始/停止イベントを表示します。
応用例2: サービスのエラーハンドリング動作を一覧表示する
設定したエラーハンドリング動作を一覧で確認することも可能です。
sc qfailure [サービス名]
まとめ
Windowsのサービスのエラーハンドリング動作は、システムの安定性やトラブル時の対応を自動化する上で非常に重要な設定となります。コマンドプロンプトを使ってこれらの設定を効率的に行うことができますので、ぜひ活用してみてください。
コメント