連載
» 2017年05月01日 05時00分 公開

その知識、ホントに正しい? Windowsにまつわる都市伝説(82):Windows 10で増殖する“謎サービス”の正体を追え! (2/2)

[山市良,テクニカルライター]
前のページへ 1|2       

サービス開始を無効化できないという不思議

 謎のサービスは、サービスの構成設定についても、従来のサービスとは異なる特徴があります。「サービス」スナップインや「SC.EXE」コマンドを使用して、サービスのスタートアップを変更(例えば、「自動」から「無効」に変更)しようとすると、あるサービスは「パラメーターが間違っています」と表示されます。また、別のサービスは「スタートアップの種類」ドロップダウンリストがグレーアウト表示となり、変更できません(画面4)。

画面4 画面4 謎のサービスの「スタートアップの種類」は、「サービス」スナップインやSCコマンドでは変更できない

 レジストリの「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<サービス名>」キーの「Start」値を直接編集することで、サービスを無効化することは可能です。Windows Sysinternalsの「Autoruns(Autoruns for Windows)」ユーティリティーを使用すれば、チェックボックスをオフにするだけで、簡単かつ安全にサービスを無効化できます。

 しかし、謎のサービスを無効化することはお勧めしません。前出の表1のサービスの説明にあるように、アプリの正常な実行に影響するかもしれませんし、そもそもサービスの無効化が無意味である可能性があるからです。

 筆者は、全てのUWPアプリを終了して、現在実行中の謎のサービスを全て停止し、Autorunsを使用して謎のサービスを無効化してみました。その状態でUWPアプリを開始すると、スタートアップを無効にしたサービスが再度開始され、実行中の状態になったのです。Autorunsでは、「サービス」スナップインには表示されない、「_XXXXX」の付かない同名のサービスも含めて無効化しましたが、アプリを起動すると実行中になりました(画面5)。Windows 10では、Windowsサービスに関して、公開されていない新しい仕様が追加されているようなのです。

画面5 画面5 Autorunsを使用して謎のサービス(「_XXXXX」の付かないサービスも含めて)を無効化しても、アプリを起動すると、無効にしたサービスが開始され、実行中になった

 レジストリに登録されているサービスグループ「UnistackSvcGroup」には、「_XXXXX」の付かないサービスが定義されていました(前出の画面2)。しかし、実際に「svchost.exe」でホストされるサービスは「_XXXXX」が付きます。Windows 10 Anniversary Update(バージョン1607)では、「サービス」スナップインに表示されるのは「_XXXXX」が付くサービスで、「_XXXXX」が付かないサービスは非表示になっています。そして、「_XXXXX」が付かないサービスは、「タスクマネージャー」の「サービス」タブやSCコマンド、「NET START」コマンドを使用しても、開始することができません(前出の画面2)。

 「SC QC」コマンドを使用して「_XXXXX」の付くサービスと「_XXXXX」の付かない同名のサービスの構成設定を確認すると、「_XXXXX」の付くサービスの種類(TYPE)は「0xE0(224)」で識別される「USER_SHARE_PROCESS INSTANCE」、「_XXXXX」の付かない同名のサービスの種類は「0x60(96)」で識別される「USER_SHARE_PROCESS TEMPLATE」となっていました(画面6)。従来のサービスの種類は、0x10(16)の「WIN32_OWN_PROCESS」や0x20(32)の「WIN32_SHARE_PROCESS」などです。0xE0(224)の「USER_SHARE_PROCESS INSTANCE」と0x60(96)の「USER_SHARE_PROCESS TEMPLATE」は、どちらもWindows 8.1以前は存在しなかった種類です。

画面6 画面6 「0xE0(224)」と「0x60(96)」は、Windows 10に新たに追加されたサービスの種類

 サービスを無効にする意味がない理由は、スタートアップの無効化で制御できないだけではありません。謎のサービス群の「_XXXXX」部分は、PCを起動するごとに変化するからです。実行中のWindowsで謎のサービス群のスタートアップやその他の設定を変更したとしても、次のPC起動時には新しいサービス名を持つ、既定の設定で復活してしまうからです。

 AutorunsにはオフラインのWindowsインストールを調査する機能(「File」メニューの「Analyze Offline System」)があります。この機能を使って、Windowsインストールを含むオフラインのディスクをマウントし、サービス登録状況を見てみると、「_XXXXX」が付くサービスが存在しないことが分かります(画面7)。

画面7 画面7 AutorunsでオフラインのWindowsイメージを調査すると、「_XXXXX」の付くサービスが存在しない

 これは筆者の想像ですが、Windowsが起動する際に、「0x60(96)」の「USER_SHARE_PROCESS TEMPLATE」のサービスをテンプレートとして、「_XXXXX」が付く、「0xE0(224)」の「USER_SHARE_PROCESS INSTANCE」のサービスが作成されるのでしょう。

仕様がないのはしょうがない?

 結局、謎サービスの謎はますます深まるばかりですが、少なくとも、Windows 10のWindowsサービスに関して、Windows 8.1以前にはなかった幾つかの仕様変更(追加)が行われていることは明らかになりました。正式な公開情報がないため、謎のサービスの設定には、下手に触れない方がよいでしょう。思わぬトラブルに見舞われる可能性があります。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門−完全版』(日経BP社)。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

「Windows 7」サポート終了 対策ナビ

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。