[System Environment] | |||||||||||||||||||
レジストリへのアクセスをモニタする方法
|
|||||||||||||||||||
|
解説 |
周知のとおり、レジストリはWindowsシステムに関するさまざまな情報を集中的に管理するデータベースである。ハードウェアからOS、アプリケーションに至るまで、Windowsシステムに関する、ほとんどあらゆる情報がこのレジストリに記録される。Windowsシステムの稼働中は、ことあるごとにレジストリへの読み書きが発生し、レジストリ情報が参照されたり、必要な情報が記録されたりする。いってみれば、レジストリはWindowsシステムの挙動を支配する頭脳のようなものだ。
レジストリに記録された設定情報を操作すれば、Windows OSを自由自在にカスタマイズすることができる。レジストリを編集するために、Windows 2000/XPにはレジストリ・エディタ(regedit.exe)と呼ばれるツールが標準で提供されている(ただし、レジストリに不正な値を書き込むと、最悪の場合、システムが起動不能になるなど、致命的な結果をもたらす危険もあるので注意が必要だ)。問題は、大量の情報で樹海のようになったレジストリから、自分が求めるカスタマイズに対応する項目を見つけ出すことだ。英語版ながら、これには『Windows 2000 Professionalリソースキット』(日経BPソフトプレス発行)などのリソースキットに付属するCD-ROMに収録されているレジストリ・リファレンス・ヘルプを活用できる。このヘルプの詳細については別稿の「Windows TIPS:リソース・キット付属のレジストリ・リファレンスを活用する」が詳しいので参照されたい(ただし、Windows XPのリソースキットでは、このようなヘルプは用意されていない)。
SysinternalsのRegmon
前出のレジストリ・リファレンスを利用すれば、目的とするたいていのレジストリ項目を見つけ出すことができるだろう。しかしこれでも100%完全というわけではないし、中にはヘルプの記述が間違っていることもある(記述ミスの例:「Microsoft Knowledge Base:After Upgrade to Windows 2000 Last Logged On User Name Displayed」)。また、ソフトウェアの挙動を確認するために、そのソフトウェアの設定情報がどこに保存されるのか(ファイルなのか、レジストリなのか? レジストリだとすればどの項目か?)を調査する必要に迫られることもある。例えば、あるソフトウェアを別の環境に移行したら、以前と挙動が変わってしまったときなどは、レジストリにおける設定情報が影響している可能性がある。
こんなとき、何とか原因を見つけ出そうとレジストリと格闘したが、そのあまりの奥深さにさじを投げたという経験はないだろうか。あるいは、これからそういう必要に迫られるかもしれない。そんな上級ユーザーには持ってこいのツールがある。それが今回ご紹介するSysinternalsのRegmon(Registry monitor)である。
Sysinternalsは、主に開発者や管理者向けのツール開発などで著名なマーク・ルシノビッチ(Mark Russinovich)氏とブライス・コスウェル(Bryce Cogswell)氏の2人が公開しているWebサイトで、両氏が開発した数々のフリー・ソフトウェアが公開されている。両氏はかつて、米国の開発者向け雑誌として著名なDr.Dobb's Journal誌の構成エディタを務めていたことがあり、記事中で作成したサンプル・プログラムなどをこのSysinternalsサイトで公開し始めた。その後両氏は、さらに本格的なツール開発と販売を手がけるWinternals Software LP社を設立し、別途サイトを構築した(Winternalsのホームページ)。簡単にいえば、Sysinternalsはフリー・ソフトウェアの提供を目的としており(ものによってソース・プログラムも公開されている)、Winternalsは有償ソフトウェアの販売を目的としている。ただし一部のソフトウェアでは、Winternalsで販売されているソフトウェアの機能制限試用版がSysinternalsで公開されているというケースもある。
Sysinternalsのホームページ |
Dr.Dobb's Journalの構成エディタとして活躍していたマーク・ルシノビッチ(Mark
Russinovich)氏とブライス・コスウェル(Bryce Cogswell)氏によって設立されたフリー・ソフトウェア提供サイト。無償ながら、非常に強力なツールが多数提供されている。 http://www.sysinternals.com/index.shtml |
SysinternalsやWinternalsという名前が表しているとおり、システム内部に精通し、これをモニタしたり、機能拡張したりするツール開発などが両氏の本領である。実際マーク・ルシノビッチ氏は、『アーキテクチャ徹底解説 Microsoft Windows 2000(上/下)』(日経BPソフトプレス発行)の共同著者の1人でもある。
このSysinternalsで提供されているツールの1つが今回ご紹介する「Regmon for Windows NT/9x」である。これは、レジストリへのアクセスをリアルタイムに監視するツールで、レジストリからの読み出しや、レジストリへの書き込みを逐一モニタすることが可能である。従ってこのRegmonを実行して、レジストリ・アクセスを調査したい操作を行えば、それによってどのようなレジストリ・アクセスが発生しているか(レジストリにアクセスしていないか)を調べることができる。
操作方法 |
Regmonのダウンロードと実行
Regmonを入手するには、SysinternalsのRegmonのページに行き、ページの最後にある“Download Regmon (x86 - 72KB) - you plan on using Regmon on WinNT/2K/XP”からプログラムをダウンロードする(Windows NT 4.0/2000/XPの場合)。Windows 9x(Windows 95/98/Me)で実行したければ、“Download Regmon (x86 - 72KB) - you plan on using Regmon on Win9x/Me”のほうをダウンロードする。
こうしてダウンロードされるファイルは、いくつかのファイルをまとめたzipファイルなので、これを適当なフォルダ(Regmonをインストールしたいフォルダ)に置き、解凍する。以上でセットアップは完了である。後はこうして解凍されたregmon.exeを実行すればよい。ただしWindows NT/2000でRegmonを実行するには、管理者権限が必要である(管理者権限の詳細は「Windows TIPS:Administratorとは?」を参照)。なおインストーラなどを起動しないため、[スタート]−[プログラム]などにアイコンは追加されないので、必要なら自分でプログラムのショートカットを適当な場所に置いておくとよい。
Regmonを起動すると次のようなウィンドウが現れる。
の“Time”では、ストップウォッチ・モードと時計モードの2つを選択できる。このうち上の画面はストップウォッチ・モードで、Regmonの起動直後からの経過時間が秒単位で表示される。一方の時計モードにすると、アクセスが発生した時刻が表示されるようになる。
このように“Time”()、“Process”()、“Request”()、“Path”()を見れば、それぞれレジストリ・アクセスが発生した時間、レジストリをアクセスしたプロセス、レジストリ・アクセスの種類(読み出しか、書き込みかなど)、アクセスされたレジストリのパスを調査できるというわけだ。
Regmonはすべてのレジストリ・アクセスを監視するので、システムの状態にもよるが、通常は大量の情報が続々と表示されることになる。情報が多すぎて目的の情報を見つけにくいときには、Regmonのフィルタ機能を利用することができる。これは簡単にいえば、文字列を指定することで、「指定文字列を含む情報のみ表示する」とか、「指定文字列を含む情報は表示しない」などの設定を可能にするものだ。注目外の特定のサービスなどが大量のアクセスを行うようなら、このサービスに関する情報(“Process”項目を利用)を表示しないようにフィルタを設定すればよい。
活用例:Tweak UIの設定をモニタしてみる
ここでは応用例として、Windows 2000向けのTweak UIを使った設定がレジストリにどのように反映されるかをモニタしてみよう。Tweak UIは、いくつかのレジストリ設定をGUIから実行可能にするツールで、米MicrosoftのWebサイトより無償でダウンロードできる(Windows 2000向けのTweak UIの詳細は「Windows TIPS:Tweak UIを使ってWindows 2000をカスタマイズする」を参照、Windows XP向けは「Windows TIPS:PowerToys for Windows XPを活用する」を参照)。
Tweak UI(Windows 2000対応版) | |||
Tweak UIは、いくつかの代表的なレジストリ設定をGUIから行えるようにしたツールである。今回は例として、音楽CDの自動再生機能をオン/オフする設定である、[Pranoia]タブの[Play audio CDs automatically]のチェック・マークをオン/オフしてレジストリへのアクセス状況をモニタする。 | |||
|
まずはRegmonを起動しておき、Tweak UIを起動して、[Paranoia]タブをクリックする。そして[Play audio CDs automatically]のチェック・マークをオンにし、下の[適用]ボタンをクリックする([Play audio CDs automatically]は、最初はオフだとする)。[適用]ボタンをクリックすると、レジストリへのアクセスが発生し、その結果が続々とRegmonのウィンドウに表示される。
Tweak UIで設定を行った場合のRegmonウィンドウ |
Regmonでレジストリ・アクセスをモニタしながら、Tweak UIでの設定を実行したところ。このテストでは、Regmonのハイライト機能により、アクセスの種類が“SetValue”(値の書き込み)の行だけ(“SetValue”という文字列を含む行だけ)をハイライト表示している。このウィンドウで適当な項目をダブルクリックすれば、レジストリ・エディタが起動され、対応するレジストリ・パスが表示される。 |
このテストでは、Regmonのハイライト機能を利用して、アクセスの種類が“SetValue”(値の書き込み)の行だけ(“SetValue”という文字列を含む行だけ)をハイライト表示させた。これを見ていると、Tweak UIのプロセスはrundll32.exe(DLLをプログラムとして実行するためのもの)で、例えば“HKEY_CLASS_ROOT\AudioCD\shell(Default)”に「"play"」という文字列を書き込むなど(一番上のハイライト行)していることが分かる。
以下のハイライト行は、“Path”列の横幅が短くてよく分からないが、ウィンドウの横幅を広げることができるし、フォントを小さくすることもできる。またRegmonに表示された適当な行をマウスでダブルクリックすれば、レジストリ・エディタが起動され、対応するパスが表示される。
■
ご覧のようにRegmonは非常に強力なツールである。今回はご紹介できなかったが、Regmonには、起動時のレジストリ・アクセスをログ・ファイルに記録させる機能もある(Windows NT/2000/XPのみ)。Regmonの結果を丹念に見ていけば、Windowsシステムがどのように動いているのか、アプリケーションがどのように動いているのかを知ることができる。これらの情報は、システムやアプリケーションをさらに活用するために、あるいはトラブルシューティングに役立つだろう。Windowsの上級ユーザーなら持っていて損のないツールである。
関連記事(Windows Server Insider) | ||
Windows TIPS:リソース キット付属のレジストリ リファレンスを活用する | ||
BookReview:Inside Microsoft Windows 2000 Third Edition | ||
Windows TIPS:Administratorとは? | ||
Windows TIPS:Tweak UIを使ってWindows 2000をカスタマイズする | ||
関連リンク | ||
Windows 2000 Professionalリソースキット(日経BP ソフトプレス) | ||
Microsoft Knowledge Base:After Upgrade to Windows 2000 Last Logged On User Name Displayed(Microsoft) | ||
<Winternalsのページ(Winternals) | ||
Regmonのページ(Sysinternals) | ||
この記事と関連性の高い別の記事
- リソース・キット付属のレジストリ・リファレンスを活用する(TIPS)
- Tweak UIを使ってWindows 2000をカスタマイズする(TIPS)
- NT 4.0のアプリケーション設定情報をWindows 2000に移行させる方法(TIPS)
- Windowsで起動時に自動実行される不要なプログラムを「見つける」方法(TIPS)
- Sysinternalsツールをオンラインで使う(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
更新履歴 | |
|
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|