※本ページにはプロモーション(広告)が含まれています
Windowsサービスとは、起動時に自動で開始され、WindowsPCの稼働中にバックグラウンドで働き続けるプログラムのことを指します。セキュリティソフトなどはこのWindowsサービスとして活用されていることが多いです。
通常、アプリケーションプログラムはユーザーがユーザー権限のもとに実行しています。これに対して、「Windowsサービス」はWindowsパソコンのブート時に自動で起動されるため、実行をしたという意識を持つことができません。
そのため、Windowsサービスとして登録されているプログラムにセキュリティ上の問題がないのかなど、ある程度周期的にユーザー側で確認を行うことが大切です。
また、Windowsサービス自体もユーザー側で作成することができるため、毎回ブート時にユーザー側で起動しているアプリケーションや処理などがあれば、Windowsサービスとして作成登録しておくと便利になるかもしれません。
本記事ではWindowsサービスの簡単な解説と、ユーザー側でWindowsサービスを作成する方法についてご紹介していきます。
今までWindowsサービスに触れてきた方、そうでない方も、是非本記事を参考に便利にWindowsサービスを活用できるようにしていってくださいね。
この記事のまとめ
この記事のまとめ
1.Windowsサービスとは
通常のプログラムは、ユーザーが起動します。そして、基本的には起動したユーザーの権限で実行されています。
通常のプログラムを「管理者権限」で実行させることも可能ですが、その場合は明示的に「管理者として実行する」必要があります。また、その場合でも、ログインしてからの起動になりますし、ログオフするときには停止します。
これに対して、Windowsサービスは、ユーザーがログインしていなくても、Windowsの起動と同時に実行させることが可能です。
権限も、あらかじめ設定しておくことが可能です。ですから、セキュリティソフトなど、ログインしていない状態でも立ち上がっていてほしいプログラムは、Windowsサービスとすることで、Windowsの起動と同時に実行させることが可能となります。
また、サーバーでは基本的に、電源が入っていればすべてのサービスが実行されています。これらのサービスもWindowsサービスとして実行されています。
2.Windowsサービスの管理
現在インストールされている「Windowsサービス」は「サービス管理ツール」ウィンドウで調べられます。
「サービス管理ツール」ウィンドウは、「コントロールパネル」から開きます。
Windowsのバージョンによって「コントロールパネル」の構成は異なりますので、ここでは検索を利用します。
「コントロールパネル」で「コントロールパネルの検索」窓で「サービス」を検索します。
「サービス」が表示されたら「サービス」をクリックします。表示されなかったら「管理ツール」をクリックします。
管理ツールの一覧の「サービス」をダブルクリックします。「サービス管理ツール」ウィンドウが表示されます。
Windows8以降なら「タスクマネージャー」から「サービス」タブを選択すると簡易的な一覧が表示できます。
タスクで右クリックして表示されるメニューから「サービス管理ツールを開く」で「サービス管理ツール」を開くことができます。
「サービス管理ツール」ウィンドウのサービスで右クリックするとサービスの管理メニューが表示されます。
ここでWindowsサービスを開始・停止したり、プロパティを調べたりといったサービスの管理が可能です。
サービス管理ツールやタスクマネージャーを活用することによって、現在Windowsサービスとしてどのプログラムが登録されているのか、また稼働しているのかという状況を把握することができます。
通常100以上のサービスが登録されている場合が多いですが、必要最小限の構成にした方が起動時の処理も早くなる可能性があります。
しかし、バックグラウンドで稼働させておく必要のあるアプリケーションプログラムも多くありますので、Windowsサービスを削除したり変更したりする場合は、本当に問題がないのか慎重に確認するようにしましょう。
3.Windowsサービスの作成
Windowsサービスもプログラムですので、まずはプログラムを作成します。Visual StudioにはWindows サービス用のテンプレートが用意されています。
もちろん、自分でゴリゴリ作成するのもありです。Windowsサービスは自動で立ち上げますので、登録する必要があります。
具体的にはレジストリの以下のキーの下に登録します。
HKLM\System\CurrentControlSet\Services
登録は、「SC」コマンドで行います。
この「SC」コマンドは、サービスの登録だけではなく、スタート、停止、削除などサービスに対するいろいろな操作が可能です。コマンドプロンプトで「sc」を入力して「Enter」を押すと「SC」のコマンドなどのヘルプが表示されます。
登録の基本書式は「sc create サービス名 binpath= 実行ファイルのフルパス名」となります。
また、「displayname= オプション名」を付けておくと「サービス管理ツール」で見たときにわかりやすくなります。
4.Windowsサービスの開始方法
Windowsサービスの一覧で表示されているサービスは、上記の一覧画面から稼働させることもできます。手順は次の通りです。
- 稼働させたいサービス名をダブルクリック
- 表示されるプロパティの「サービスの状態」を確認
- 「開始」を選択
- ステータスが「実行中」に変わったことを確認
同様に、稼働中のサービスを停止したい場合には「停止」ボタンを選択しましょう。
また、Windowsサービスはプログラムごとに稼働させるタイミングを設定することができ、Windowsの電源を入れた時に稼働させたいプログラムがある場合は、「スタートアップの種類」で「自動」を選択してください。
Windowsサービスに関するよくある質問とその回答
- Q: Windowsサービスと通常のアプリケーションの違いは何ですか? A: Windowsサービスは、ユーザーがログインしていなくても起動時から動作し、バックグラウンドで継続的に実行されるプログラムです。一方、通常のアプリケーションはユーザーがログインし、明示的に起動する必要があります。
- Q: Windowsサービスの一覧はどこで確認できますか? A: 「サービス管理ツール」で確認できます。コントロールパネルから「サービス」を検索するか、Windows 8以降ではタスクマネージャーの「サービス」タブでも簡易的な一覧が表示できます。
- Q: 不要なWindowsサービスを停止しても大丈夫ですか? A: 一部のサービスは停止しても問題ありませんが、システムの重要な機能に関わるサービスもあるため、停止する前に十分な調査が必要です。不明な場合は、専門家に相談することをおすすめします。
- Q: 自作のプログラムをWindowsサービスとして登録するメリットは何ですか? A: 自動起動、バックグラウンド実行、特定の権限での実行など、通常のアプリケーションでは難しい動作が可能になります。定期的なタスクや常時稼働が必要なプログラムに適しています。
- Q: Windowsサービスの作成に特別なスキルは必要ですか? A: プログラミングの基礎知識とWindowsの仕組みについての理解が必要です。Visual Studioを使用すれば、テンプレートを利用して比較的簡単に作成できますが、適切な設定と安全性の確保には経験が求められます。
Windowsサービスのまとめ
一般ユーザーがWindowsサービスを作成する機会は少ないと思いますが、一般のアプリケーションプログラムでは実現しにくい環境を作成することも可能です。
他にも起動プロセスやログインプロセス内でプログラムを実行させることは可能ですが、Windowsサービスのように実行権限を指定するなどの細かな設定は困難です。
ここでは、Windowsサービスの概要と、作成・登録方法の概要を見ていきましたが、まだまだ利用価値の高い機能です。プログラム実行の一つの選択肢に加えてみてはいかがでしょうか。