2019年07月20日更新
Windowsサービスとは?サービスを詳しく解説!
皆さんはWindowsサービスとはなにかご存知でしょうか。以前はNTサービスという言い方をしていましたが、今ではWindowsサービスという言い方をするようになっていますが、今回はWindowsサービスとはなにかについてまとめていきます。
目次
Windowsサービスとは?
皆さんはWindowsサービスとはなにか聞いたことはありますでしょうか。通常の使い方をして入れは、Windowsサービスという言葉を聞くこともあまりないかもしれませんが以前はNTサービスという名前を使っていました。
以前はNTサービスという名前になっていましたが、Microsoft側がWindowsサービスという名前に変更した形になっていますので、中身は昔からあるNTサービスというシステムになりますので、WindowsサービスはNTサービスです。
みなさんが普段パソコンを使っていろいろなプログラムを起動させてるかっているかと思いますが、通常のプログラムは、ユーザーが起動します。これは皆さんのことを指します。いつもログインをしているかと思います。
そして、プログラムは基本的に起動したユーザーの権限で実行されるようになっています。いわゆる管理者と言われるような権限でプログラムを登録・開始・停止をおこなっています。このプログラムを「管理者権限」で実行させることも可能です。
しかし、こういったプログラムを管理者として登録・開始・停止する場合は明示的に「管理者として実行する」必要があります。普段は知らず知らずのうちに管理者としてログインしてからのプログラムを起動したり登録・開始・停止しています。
基本はこういった形でパソコンのプログラムを実行させるのが通常ですが、Windowsサービスはこういったプログラムの登録・開始・停止をすることなく、Windowsの起動と同時に実行させることが可能になるようになるものということです。
バックグラウンドで実行されるプログラム
Windowsサービスとは、バックグラウンドで登録・開始・停止などを実行されるプログラムのことを言います。管理者としてプログラムを登録・開始・停止することなく、あらかじめ起動するように登録しておくことが出来るプログラムになります。
あらかじめ設定しておくことができるのがWindowsサービス、いわゆるNTサービスになります。Windowsサービス、NTサービスに登録してされているプログラムの例を出すと。セキュリティソフトなどがWindowsサービスになります。
セキルティソフトってパソコンに管理者としてログインしていない状態でも立ち上がっているのをご存知でしょうか。こういったセキルティソフトなどはNTサービス、いわゆるWindowsサービスとして登録されているプログラムになります。
セキルティソフトのウイルスバスターなどをWindowsサービスやNTサービスとして事前に登録しておくことでWindowsサービスとして制御されたプログラムとして登録・開始・停止することができますので、とても便利になります。
WindowsサービスやNTサービスは、Windowsサービスとして登録・開始・停止などの起動することによってWindowsの起動と同時に実行させることが可能となります。つまり、電源が入っていればすべてのサービスが実行されるようになります。
Windowsサービス、NTサービスとして事前に登録しておくことで起動させる制御をWindowsサービスとして制御させることができますので、常に起動させてプログラムがあれば、NTサービス・Windowsサービスに登録させておきましょう。
以前はNTサービスと呼ばれていた
ちらっとご説明していますが、Windowsサービスとは以前はNTサービスと呼ばれていたプログラムで、以前はNTサービスと呼ばれていただけで中身は変わっていませんので、何か特別なことがあるわけではありませんのでどちらでも大丈夫です。
このようにWindows サービス は、以前はNT サービスなどと呼ばれていましたため、いろんな解説書を読んでいるとNT サービスと書いてあったり、しますので、混乱する方もいるかと思いますがWindowsサービスと書かれていてもどちらも同じです。
新しい呼び方がWindows サービスであるだけなので、中身は先ほどご説明した通り変わりありませんので、どちらで読んでも変わりありません。ちなみに、NTサービスとは NT (ニュー・テクノロジ) という名称になります。
Windowsサービスとアプリケーションプログラムの違い
ここからはWindowsサービスとアプリケーションプログラムの違いについて説明したいきたいと思います。Windowsサービスと言われてもピンとくる方はほとんどいらっしゃらないと思いますので、違いについて説明していきたいと思います。
パソコンに詳しい方であれば、Windowsサービスとアプリケーションプログラムの違いについてもしっかりと説明できるかと思いますが、ほとんどの人には無縁の存在なので、詳しく知っておく必要も正直ないようなプログラムになります。
しかし、Windowsサービスとアプリケーションプログラムの違いを知っておけば、プログラムの登録・開始・停止を使い分けることもできますので、Windowsサービスとアプリケーションプログラムの違いをマスターしておきましょう。
違い
Windowsサービスとアプリケーションプログラムの違いは根本的に違いますので、しっかりとWindowsサービスとアプリケーションプログラムの違いについてマスターしてWindowsサービスを使いこなしてより便利にしておきましょう。
Windowsサービスとアプリケーションプログラムの違いはサービスとして使うのかWindowsサービスとして使うのかというところに違いがあります。いつも何気なくプログラムを実行している方にはイメージができないかもしれません。
アプリやプログラムを起動させるときに自動的にユーザが持っている権限について確認をしていて、その権限も持ってプログラムを開始したり停止したりしていますが、自動でされることなのでそれについて考える人もいないと思います。
ログインしていなくてもプログラムを起動できる
Windowsサービスとアプリケーションプログラムの違いで分かりやすい言い方をすると、ログインしていなくてもプログラムを起動できるようにするのがWindowsサービスというプログラムになりますので、せっかくなので覚えておいてください。
ログインしていなくてもプログラムを起動できるものとしてはセキルティソフトのウイルスバスターなどが具体的な一例として挙げられます。セキルティソフトのウイルスバスターはインストールすることで自動的にWindowsサービスになっています。
自分でセキルティソフトのウイルスバスターを開始させたり停止させる人は居ないかと思いますがインストールしたときにWindowsサービスとして登録されていて、バックグラウンドでセキルティソフトのウイルスバスターが動いています。
Windowsサービスの仕組み
Windowsサービスとアプリケーションプログラムの違いはログインしていなくてもプログラムを起動できることにありますが、もう少し詳しくWindowsサービスの仕組みについて説明してまとめていきたいと思います。
ここからは基本的に普通の人が知っていても特に役に立つことがない知識になりますので、読みたい方でも大雑把にこういう仕組みになっているんだというぐらいで大丈夫かと思います。Windowsサービスを一生知ることがない人もいます。
なので、ログインしていなくてもプログラムを起動できるWindowsサービスの仕組みについて説明してまとめていきますが、興味がある方ぐらいで大丈夫ですので、知りたい方は下記の記事を参考にしてみてください。
SCMと通信してサービスの開始/停止を制御する
Windowsサービスの仕組みとしては、SCMと通信してサービスの開始/停止を制御するような仕組みになっています。SCMデータベースにと登録してあるプログラムはログインすることなくSCMデータベースと通信することで開始停止が実行されます。
SCMとはサービスを制御するサブシステムである Service Control Manager (SCM) と通信するインターフェイスのことを指します。このSCMとのインターフェイスを持つので、サービススナップインまたは SCMと通信可能にすることになります。
サービスを制御するサブシステムである Service Control Manager (SCM)と通信することでSCMと通信してサービスの開始/停止を制御できるようになりますので、セキルティソフトのウイルスバスターのように常起動させることができます。
Windowsサービスの動作
先ほどはSCMはサービスを制御するサブシステムである Service Control Manager (SCM) について説明しましたが、ここではWindowsサービスの動作についてどういた動作をして制御されているのかについて説明していきたいと思います。
SCMデータベースとの通信がどのように動作しているのかについて詳しく説明していきますので、興味がある方は読んでみてください。このWindowsサービスの動作を説明するのはとても難しい話になってしまうためご了承ください。
Windowsサービスはバックグラウンドで自動で起動してくれたり制御してくれるプログラムですが、裏側ではかなり難しいことをして、皆さんのサポートをしてくれますので、詳しく説明していきたいと思います。
サービスの起動と制御の流れ
Windowsサービスのサービスの起動と制御の流れについてまとめて行きたいと思います。Windowsサービスはバックグラウンドでいろいろと動いてくれるプログラムなので、バックグラウンドで何が動いているのかについて説明していきます。
難しいことを言わずにバックグラウンドで何をしているかと言うとプログラムが開始したらプログラムから StartServiceCtrlDispatcherというAPIを呼び出してくれているのがWindowsサービスというプログラムになります。
そしていい感じにバックグラウンドで動いてくれてSCMからの一時停止要求などを受け付ける制御ハンドラを登録して命令はこの制御ハンドラに送られます。これでバックグラウンドでサービスを停止したり、開始したりしています。
Windowsサービスの登録
Windowsサービスの登録の方法についてここから説明していきたいと思います。先ほどはWindowsサービスがどういった形でバックグラウンドで動いてくれているのかを説明していきましたので、みなさんもWindowsサービスをマスターしたはずです。
なので、Windowsサービスの登録についてここから説明していきますので、Windowsサービスを使いたいという方はここの記事を参考にして貰えるとWindowsサービスをして登録することができますので、サクッと説明していきます。
Windowsサービスに登録することがあるのかはイメージが着かない人もいるかと思いますが、やってみて便利なこともありますので、Windowsサービスの登録・開始・停止についてまとめていきたいと思います。
サービスが登録されているSCMデータベースの場所
サービスが登録されているSCMデータベースの場所について説明していきたいと思います。サービスが登録されているSCMデータベースの場所が分からないと登録するときに困るかと思いますので、皆さんも確かめておいてください。
SCMデータベースはレジストリの以下のキーの下にあります:
HKLM\System\CurrentControlSet\Services
サービスのインストール方法
サービスのインストール方法について説明していきたいと思います。インストールは少し慣れていない方でなければ難しいと思いますが、Windowsサービスのインストール方法についてまとめていきたいと思います。
まずはレジストリにエントリを作成していきます。HKLM\SYSTEM \CurrentControlSet\Services
インストールに利用可能なAPIはOpenSCManager、CreateService、CloseServiceHandleとなっています。
sc create コマンドでサービスをインストールすることは可能になりますので、 sc create コマンドは上記のレジストリを構成してくれますので、インストールするのがとても簡単になりますので、おすすめになっります。
Windowsサービスの管理
Windowsサービスの管理方法についてまとめていきたいと思います。Windowsサービスの管理をする必要がありますので、Windowsサービスの管理の方法はマスターしておいた方がいいかと思いますので、ここを参考にしてください。
既にインストールされているWindowsサービスを管理することができますので、既にインストールされていてバックグラウンドで動いているプログラムを管理したり確認する方法になりますので、気になる方へここで説明していきます。
管理方法は管理ツールがありますので、サービス管理ツールを開くことでWindowsサービスを管理することができますので、そこまでムズカシイものではありませんので、ここでWindowsサービスの管理についてまとめていきます。
サービス管理ツールを開く
サービス管理ツールを開く方法について説明していきたいと思います。現在インストールされているWindowsサービスはサービス管理ツールウィンドウで確認することができますので、みなさんもサービス管理ツールをいてみてください。
サービス管理ツールはコントロールパネルから確認することができますので、コントロールパネルを開いてください。Windowsのバージョンによってコントロールパネルの構成は異なりますので、検索を行ってみてください。
コントロールパネルの中でサービスで検索を行ってください。サービスが表示されたら表示されたサービスをクリックしてください。もし検索しても表示されなかったら管理ツールをクリックして管理ツールを開いてください。
ちなみに、Windows8以降のOSであればタスクマネージャーからサービスタブを選択するとシンプルな一覧が表示されるようになっていますので、これで確認する方法をお勧めします。またサービス管理ツールを開くにもここでできます。
方法としては、タスクで右クリックしてサービス管理ツールを開くをクリックしてサービス管理ツールをおすことで開くことができますので、これを参考にしてWindowsサービスをひらいてみてください。
開始/停止を選択する
Windowsサービスを登録・開始・停止するには、サービス管理ツールのサービスで右クリックするとサービスの管理メニューが表示されるようになっていますので、ここを操作することで開始・停止を行うことができますのでサクッと確認してみてください。
なので、セキルティソフトのウイルスバスターのようなWindowsサービスを一覧で確認することができますので、開始停止したいものがあれば、ここでWindowsサービスをクリックすることで開始・停止したり、プロパティを調べることもできます。
これでバックグラウンドで動かすものを選んだり、バックグラウンドで動かすのを辞めることもできますので、必要に応じてWindowsサービスの開始停止を選択して貰えれば、とてもスムーズに切り替えを行うことができます。
こういった形でWindowsサービスのサービス管理ツールやタスクマネージャーを活用することによって、どういたプログラムがバックグラウンドで動いているのかやどんなプログラムをインストールしているのかを確認してみてください。
気付いていないだけでWindowsサービとして登録されているプログラムはたくさんあり、通常通り使うだけで、大量のプログラムが動いてくれていて、今のようにパソコンなどを使うことが出来ているかを知ることができます。
ちなみに、普通に動かしていてもプログラムは通常100以上のサービスが登録されている場合が多く、本当に必要なものだけを動かして置くということもできますので、メモリの節約にも繋がったりしますので、とても便利です。
最後に
今回は「Windowsサービスとは?サービスを詳しく解説!」についてまとめてみましたが、皆さんはいかがでしたでしょうか。こういった知らないところでパソコンのなかのプログラム達は動いてくれているので、使うことができます。
昔からNTサービスとう名前でありましたが、今ではWindowsサービスという名前になっていますので、上手くWindowsサービスを使ってもらえれば、とても便利にすることができますので、こういったWindowsサービスを使ってみてください。
なので今回説明したものを上手く使ってパソコンを便利にしてみてください。意外とWindowsサービスは便利なものなので使ってみてください。