漫画の地球儀

Windowsサービスとアプリケーションプログラムの違い!【登録、開始、停止、pc、Windows10】

スポンサーリンク

Windowsサービス

f:id:rick1208:20200710052912p:plain
皆さんはWindowsサービスとはなにか聞いたことはありますと思いますか。通常の使用方法をして入れは、Windowsサービスという言葉を聞くこともあまりないかもしれませんが以前はNTサービスという名前を使用していました。

以前はNTサービスという名前になっていましたが、Microsoft側がWindowsサービスという名前に変更した形になっていますので、中身は昔からあるNTサービスというシステムになりますので、WindowsサービスはNTサービスです。

みなさんが普段パソコンを使用していろいろなプログラムを起動させてるかっているかと思いますが、通常のプログラムは、ユーザーが起動します。これは皆さんのことを指します。いつもログインをしているかと思います。

そして、プログラムは基本的に起動したユーザーの権限で実行されるようになっています。いわゆる管理者と言われるような権限でプログラムを登録・開始・停止をおこなっています。このプログラムを「管理者権限」で実行させることも可能です。

しかし、こういったプログラムを管理者として登録・開始・停止する場合は明示的に「管理者として実行する」必要があります。普段は知らず知らずのうちに管理者としてログインしてからのプログラムを起動したり登録・開始・停止しています。


基本はこういった形でパソコンのプログラムを実行させるのが通常ですが、Windowsサービスはこういったプログラムの登録・開始・停止をすることなく、Windowsの起動と同時に実行させることが可能になるようになるものということです。

バックグラウンドで実行されるプログラム

f:id:rick1208:20200710052418p:plain
Windowsサービスとは、バックグラウンドで登録・開始・停止などを実行されるプログラムのことを言います。管理者としてプログラムを登録・開始・停止することなく、あらかじめ起動するように登録しておくことが出来るプログラムになります。

あらかじめ設定しておくことが可能なのがWindowsサービス、いわゆるNTサービスになります。Windowsサービス、NTサービスに登録してされているプログラムの例を出すと。セキュリティソフトなどがWindowsサービスになります。

セキルティソフトってパソコンに管理者としてログインしていない状態でも立ち上がっているのをご存知と思いますか。こういったセキルティソフトなどはNTサービス、いわゆるWindowsサービスとして登録されているプログラムになります。

セキルティソフトのウイルスバスターなどをWindowsサービスやNTサービスとして事前に登録しておくことでWindowsサービスとして制御されたプログラムとして登録・開始・停止することが可能ですので、とても便利になります。

WindowsサービスやNTサービスは、Windowsサービスとして登録・開始・停止などの起動することによってWindowsの起動と同時に実行させることが可能となります。要するに、電源が入っていればすべてのサービスが実行されるようになります。

Windowsサービス、NTサービスとして事前に登録しておくことで起動させる制御をWindowsサービスとして制御させることが可能ですので、常に起動させてプログラムがあれば、NTサービスWindowsサービスに登録させておきましょう。

以前はNTサービスと呼ばれていた

f:id:rick1208:20200710044640p:plain
ちらっとご説明していますが、Windowsサービスとは以前はNTサービスと呼ばれていたプログラムで、以前はNTサービスと呼ばれていただけで中身は変わっていませんので、何か特別なことがあるわけではありませんのでどっちでも大丈夫です。

このようにWindows サービス は、以前はNT サービスなどと呼ばれていましたため、いろんな解説書を読んでいるとNT サービスと書いてあったり、しますので、混乱する方もいるかと思いますがWindowsサービスと書かれていてもどっちも同じです。

新しい呼び方がWindows サービスであるだけなので、中身は先ほどご解説した通り変わりありませんので、どっちで読んでも変わりありません。ちなみに、NTサービスとは NT (ニュー・テクノロジ) という名称になります。

Windowsサービスとアプリケーションプログラムの違い

f:id:rick1208:20200709183722p:plain
ここからはWindowsサービスとアプリケーションプログラムの違いについて解説したいきたいと思います。Windowsサービスと呼ばれてもピンとくる人は大半いらっしゃらないと思いますので、違いについて説明していきたいと思います。

パソコンに詳しい方であれば、Windowsサービスとアプリケーションプログラムの違いについてもちゃんとと説明可能なかと思いますが、大半の人には無縁の存在なので、詳しく知っておく必要も正直ないようなプログラムになります。

しかし、Windowsサービスとアプリケーションプログラムの違いを知っておけば、プログラムの登録・開始・停止を使い分けることも可能ですので、Windowsサービスとアプリケーションプログラムの違いをマスターしておきましょう。

違い

f:id:rick1208:20200709173033p:plain
Windowsサービスとアプリケーションプログラムの違いは根本的に違いますので、ちゃんととWindowsサービスとアプリケーションプログラムの違いについてマスターしてWindowsサービスを使いこなしてより便利にしておきましょう。

Windowsサービスとアプリケーションプログラムの違いはサービスとして使うのかWindowsサービスとして使うのかというところに違いがあります。いつも何気なくプログラムを実行している方にはイメージができないかもしれません。

アプリやプログラムを起動させるときに自動的にユーザが所持している権限についてチェックをしていて、その権限も所持してプログラムを開始したり停止したりしていますが、自動でされることなのでそれについて考える人もいないと思います。

ログインしていなくてもプログラムを起動可能

f:id:rick1208:20200709150203p:plain
Windowsサービスとアプリケーションプログラムの違いで分かりやすい言い方をすると、ログインしていなくてもプログラムを起動可能なようにするのがWindowsサービスというプログラムになりますので、せっかくなので覚えておいてください。

ログインしていなくてもプログラムを起動可能なものとしてはセキルティソフトのウイルスバスターなどが具体的な一例として挙げられます。セキルティソフトのウイルスバスターはダウンロードすることで自動的にWindowsサービスになっています。

自分自身自身でセキルティソフトのウイルスバスターを開始させたり停止させる人は居ないかと思いますがダウンロードしたときにWindowsサービスとして登録されていて、バックグラウンドでセキルティソフトのウイルスバスターが動いています。

Windowsサービスの仕組み

f:id:rick1208:20200709125129p:plain
Windowsサービスとアプリケーションプログラムの違いはログインしていなくてもプログラムを起動可能なことにありますが、もうちょっと詳しくWindowsサービスの仕組みについて説明してまとめていきたいと思います。

ここからは基本的に普通の人が知っていても特に役に立つことがない知識になりますので、読みたい方でも大雑把にこういう仕組みになっているんだというぐらいで大丈夫かと思います。Windowsサービスを一生知ることがない人もいます。

なので、ログインしていなくてもプログラムを起動可能なWindowsサービスの仕組みについて説明してまとめていきますが、興味がある方ぐらいで大丈夫ですので、知りたい人は下記の記事を参考にしてみてください。

SCMと通信してサービスの開始、停止を制御する

f:id:rick1208:20200709112805p:plain
Windowsサービスの仕組みとしては、SCMと通信してサービスの開始、停止を制御するような仕組みになっています。SCMデータベースにと登録してあるプログラムはログインすることなくSCMデータベースと通信することで開始停止が実行されます。

SCMとはサービスを制御するサブシステムである Service Control Manager (SCM) と通信するインターフェイスのことを指します。このSCMとのインターフェイスを持つので、サービススナップインあるいは SCMと通信可能にすることになります。

サービスを制御するサブシステムである Service Control Manager (SCM)と通信することでSCMと通信してサービスの開始、停止を制御可能なようになりますので、セキルティソフトのウイルスバスターのように常起動させることが可能です。

Windowsサービスの動作

f:id:rick1208:20200709104342p:plain
先ほどはSCMはサービスを制御するサブシステムである Service Control Manager (SCM) について説明しましたが、ここではWindowsサービスの動作についてどういた動作をして制御されているのかについて説明していきたいと思います。

SCMデータベースとの通信がどのように動作しているのかについて詳しく説明していきますので、興味がある人は読んでみてください。このWindowsサービスの動作を説明するのはとても難しい話になってしまうためご了承ください。

Windowsサービスはバックグラウンドで自動で起動してくれたり制御してくれるプログラムですが、裏側ではかなり難しいことをして、皆さんのサポートをしてくれますので、詳しく説明していきたいと思います。

サービスの起動と制御の流れ

f:id:rick1208:20200709095010p:plain
Windowsサービスのサービスの起動と制御の流れについてまとめて行きたいと思います。Windowsサービスはバックグラウンドでいろいろと動いてくれるプログラムなので、バックグラウンドで何が動いているのかについて説明していきます。

難しいことを言わずにバックグラウンドで何をしているかと言うとプログラムが開始したらプログラムから StartServiceCtrlDispatcherというAPIを呼び出してくれているのがWindowsサービスというプログラムになります。

そしていい感じにバックグラウンドで動いてくれてSCMからの一時停止要求などを受け付ける制御ハンドラを登録して命令はこの制御ハンドラに送られます。これでバックグラウンドでサービスを停止したり、開始したりしています。

Windowsサービスの登録

f:id:rick1208:20200709051758p:plain
Windowsサービスの登録の方法についてここから説明していきたいと思います。先ほどはWindowsサービスがどういった形でバックグラウンドで動いてくれているのかを説明していきましたので、みなさんもWindowsサービスをマスターしたはずです。

なので、Windowsサービスの登録についてここから説明していきますので、Windowsサービスを使いたいという人はここの記事を参考にして貰えるとWindowsサービスをして登録することが可能ですので、サクッと説明していきます。

Windowsサービスに登録することがあるのかはイメージが着かない人もいるかと思いますが、やってみて便利なこともありますので、Windowsサービスの登録・開始・停止についてまとめていきたいと思います。

サービスが登録されているSCMデータベースの場所

f:id:rick1208:20200709045130p:plain
サービスが登録されているSCMデータベースの場所について説明していきたいと思います。サービスが登録されているSCMデータベースの場所が分からないと登録するときに困るかと思いますので、皆さんも確かめておいてください。

SCMデータベースはレジストリの以下のキーの下にあります:

サービスのダウンロード方法

f:id:rick1208:20200710054319p:plain
サービスのダウンロード方法について説明していきたいと思います。ダウンロードはちょっと慣れていない方でなければ難しいと思いますが、Windowsサービスのダウンロード方法についてまとめていきたいと思います。

まず最初はレジストリにエントリを作っていきます。HKLM\SYSTEM
\CurrentControlSet\Services
ダウンロードに使用可能なAPIはOpenSCManager、CreateService、CloseServiceHandleとなっています。

sc create コマンドでサービスをダウンロードすることは可能になりますので、 sc create コマンドは上記のレジストリを構成してくれますので、ダウンロードするのがとても簡単になりますので、おススメになっります。

Windowsサービスの管理

f:id:rick1208:20200710054339p:plain

Windowsサービスの管理方法についてまとめていきたいと思います。Windowsサービスの管理をする必要がありますので、Windowsサービスの管理の方法はマスターしておいた方がいいかと思いますので、ここを参考にしてください。

既にダウンロードされているWindowsサービスを管理することが可能ですので、既にダウンロードされていてバックグラウンドで動いているプログラムを管理したりチェックする方法になりますので、気になる方へここで説明していきます。

管理方法は管理ツールがありますので、サービス管理ツールを開くことでWindowsサービスを管理することが可能ですので、そこまでムズカシイものではありませんので、ここでWindowsサービスの管理についてまとめていきます。

サービス管理ツールを開く

f:id:rick1208:20200710054346p:plain
サービス管理ツールを開く方法について説明していきたいと思います。現在ダウンロードされているWindowsサービスはサービス管理ツールウィンドウでチェックすることが可能ですので、みなさんもサービス管理ツールをいてみてください。
f:id:rick1208:20200710054353p:plain
サービス管理ツールはコントロールパネルからチェックすることが可能ですので、コントロールパネルを開いてください。Windowsのバージョンによってコントロールパネルの構成は異なりますので、検索を行ってみてください。

コントロールパネルの中でサービスで検索を行ってください。サービスが表示されたら表示されたサービスを押してください。もし検索しても表示されなかったら管理ツールを押して管理ツールを開いてください。

ちなみに、Windows8以降のOSであればタスクマネージャーからサービスタブを選択するとシンプルな一覧が表示されるようになっていますので、これでチェックする方法をお勧めします。またサービス管理ツールを開くにもここで可能です。

方法としては、タスクで右押してサービス管理ツールを開くを押してサービス管理ツールをおすことで開くことが可能ですので、これを参考にしてWindowsサービスをひらいてみてください。

開始、停止を選択する

f:id:rick1208:20200710054400p:plain

Windowsサービスを登録・開始・停止するには、サービス管理ツールのサービスで右クリックするとサービスの管理メニューが表示されるようになっていますので、ここを操作することで開始・停止を行うことが可能ですのでサクッとチェックしてみてください。

なので、セキルティソフトのウイルスバスターのようなWindowsサービスを一覧でチェックすることが可能ですので、開始停止したいものがあれば、ここでWindowsサービスをクリックすることで開始・停止したり、プロパティを調べることも可能です。

これでバックグラウンドで動かすものを選んだり、バックグラウンドで動かすのを辞めることも可能ですので、必要に応じてWindowsサービスの開始停止を選びて貰えれば、とてもスムーズに切り替えを行うことが可能です。
ここからでも操作可能です
f:id:rick1208:20200710054409p:plain
こういった形でWindowsサービスのサービス管理ツールやタスクマネージャーを活用することによって、どういたプログラムがバックグラウンドで動いているのかやどんなプログラムをダウンロードしているのかをチェックしてみてください。

気付いていないだけでWindowsサービとして登録されているプログラムはたくさんあり、通常通り使うだけで、大量のプログラムが動いてくれていて、今のようにパソコンなどを使うことが出来ているかを知ることが可能です。

ちなみに、普通に動かしていてもプログラムは通常100以上のサービスが登録されている場合が多く、本当に必要なものだけを動かして置くということも可能ですので、メモリの節約にも繋がったりしますので、とても便利です。

まとめ

f:id:rick1208:20200708203622p:plain
こういった知らないところでパソコンのなかのプログラム達は動いてくれているので、使うことが可能です。

昔からNTサービスとう名前でありましたが、今ではWindowsサービスという名前になっていますので、上手くWindowsサービスを使用してもらえれば、とても便利にすることが可能ですので、こういったWindowsサービスを使用してみてください。

なので今回解説したものを上手く使用してパソコンを便利にしてみてください。意外とWindowsサービスは便利なものなので使用してみてください。