Windows PCの中で、レジストリと呼ばれるものほどミステリアスな存在はないかと思います。今日は「レジストリとは何か?」、「どんな風に作動するのか?」、「クリーニングを行うべきなのか?」の三つに焦点を絞って、お話していきたいと思います。

前述したとおり、レジストリはミステリアスな存在であり、一般的にあまり上手く理解されていないWindows OSのコンポーネントだと思います。まずはレジストリとは何者か?というところから説明していきたいと思いますので、レジストリと既にお知り合いの方は、世の中に数多く存在する、レジストリクリーナーの有効性について説明している「レジストリクリーニングって本当に必要なのでしょうか?」のセクションまでスキップしてもらうと良いかもです。

 

■んで、レジストリって何者?

ウィンドウズレジストリとはアプリケーション設定、ユーザーパスワード、デバイスドライバ情報、ウィンドウズ設定、その他のWindows PC上の全ての設定を格納する階層型データベースです。

アプリケーション設定は以前テキストベースの構成ファイルが各アプリごとの別ファイルとして格納されていました(一部のアプリでは未だにそうなっています)。ウィンドウズレジストリは全てのアプリに対しての設定を一カ所にまとめることにより、その問題を解決することを目的としています。

システム設定を統合する以外に、これら全ての設定を一カ所にデータベース形式で格納します。これにより、テキスト構成ファイル解析よりも早くレジストリの値にアクセスすることが可能になり、設定以外の部分でレジストリを使用することが出来るようになります。実際、全てもしくはほとんどのレジストリは、システム起動の際に毎回メモリに読み込まれるため、レジストリへのアクセスを瞬時に行うことが出来るようになっています。

■レジストリの編集

100318_02registry_.jpg

レジストリの編集方法は数多くありますが、通常はスタートメニュー検索、または実行ボックスから起動するregedit.exeユーティリティから行います(Win+Rを押し、regedit.exeをペーストし、エンター)。エディターを開くと、左側にキーのツリービュー、右側に値が表示されます。レジストリを編集する際に最も重要となるのは、何かを変更する前にキー全体をエクスポートしておくこと。毎回元の値に戻せるとは限りません。

ネットワークアクセスに問題がなく、リモートレジストリサービスが作動している状態であれば、regeditを使って別のPCに接続し、そこからレジストリを編集することも可能です。またreg.exeユーティリティを使って、コマンドラインを編集も可能。起動しなくなってしまったマシンのレジストリを変更する際には重宝します。リカバリコンソールまで辿り着くことが出来れば、コマンドラインからレジストリ変更を手動で行うことが出来ます。

■そんで、この.regファイルってなあに?

100318_03registry_.jpg

Windows改良をテーマとしたサイトを見たことがある方なら、レジストリ設定を素早く追加できるダウンロード可能な.regファイルというのを見かけたことがあるはずです。これらのファイルは、regeditユティリティへの指示が書かれたテキストファイルなのですが、これによってキーをレジストリに追加/変更/削除することが可能です。ファイルを提供することにより、時にシステムクラッシュを引き起こしてしまうタイプミスなどが起こる可能性を回避できます

これらのファイルを適用する前にテキストエディターで開き、中を覗いて確認しておいて下さい。一般的には.regファイルの適用は、マニュアルでレジストリを編集するよりも安全です(もちろん信頼できるソースである場合ですが)。

■レジストリの格納方法、バックアップ方法

100318_04registry_.jpg

レジストリはシステム上、一カ所に統合されているべきなのですが、一つのファイルになっているわけではありません。HKEY_CURRENT_USER以外のシステム関連のものは、%SystemRoot%\System32\Configに格納されており、残りは%SystemRoot%\Profiles\ユーザ名フォルダに格納されるため、実際にはかなりの数のファイルが存在します。レジストリをバックアップするための最善方法は、システム復元ポイントを作成することですが、多くのバックアップソフトウェアパッケージを使ってもレジストリのバックアップ、復元は可能になっています。レジストリの一部のみを復元する場合であれば、regeditを立ち上げ、バックアップしたいキーを左パネルから探し、右クリックメニューからエクスポート機能を使用して、セクション全体をテキストファイル形式で保存。レジストリ全体のバックアップを取りたい場合、この方法はオススメしませんが、一部の設定を復元したい場合や、恐らく本物のギークのみがやりたがるようなレジストリハッキングをする場合などは、HKEY_CURRENT_USERのコピーを手元に置いておくと便利です。本物のギーク以外の一般ユーザの方であれば、システム復元が王道です。またこれはマイクロソフトが奨励している方法でもあります。

■レジストリクリーニングって本当に必要なのでしょうか?

100318_05registry_.jpg

レジストリクリーニングを行うことによって、PCの全ての問題を解決します、と約束してくれるレジストリクリーニング商品の広告や、関連記事がインターネットには溢れんばかりです。何年も昔にregcleanと呼ばれるユーティリティがかなり出回っていて、レジストリクリーニングは有益であるという概念が、多くの人々に植え付けられていたのを覚えている方もいるのではないでしょうか?さて、レジストリクリーニングって本当に効果があるのでしょうか?過去にもパフォーマンス向上の名の下に広がった神話に、メスを入れる(リンク先英語)記事を採り上げたことがあるのですが、これらの製品の多くは、実際に使う価値があるとは言いがたいものです。良質なものであれば、パソコンに危害を与えるレベルまではいきませんが、これらのツールはユーザを助けてくれるのか?という質問に対しての答えは、「ノー」です。ちょっと考えてみて下さい。レジストリには何十万という、ものすごい数のキーが含まれています。この中から50や100削除してみたところで、パフォーマンスの向上は期待できるでしょうか?Windowsのエキスパートであるエド・ボットさんの言葉を借りるなら:

単刀直入に言おう。「レジストリクリーニングプログラムを走らせるな」と。インチキであるとまでは決して言わない。だけれども、不要なレジストリエントリを掃除し、行き場を失ったDLLファイルのいくつかを削除したところで、何も変わりはしない。

ということです。確かにレジストリクリーニングが、パフォーマンスの向上に対して有益なケースも稀に存在します。例えば、Windowsにプラグインする何かをインストールしてみたものの、上手く作動せず、上手くアンインストールもされないという場合には、レジストリクリーニングは有益であると言えます。しかしこれらの問題の多くは、PCに何をインストールするのかを選ぶ段階で、注意深くなることによって回避できます。前にも書きましたが、本来はWindowsを定期的に再インストールする必要はないのです。同意するしないは自由ですが、「何言ってんだよコイツ」と言う前に一つ試してみて下さい。レジストリクリーニングによって、システムパフォーマンスが向上したというリアルなシチュエーションを、一つで良いので教えて下さい。上記のような粗悪なソフトのクリーニングなどのケースを除いて考えると、きっとそれは世界初の大発見になるはずです。

■じゃ、レジストリのデフラグは?

100318_06registry_.jpg

パソコンのスピードが遅くなるのを避けるために、レジストリを定期的にデフラグする必要がある、というのもレジストリに関してよく見かける話です。実際、Windows XP用にはマイクロソフトからもページファイルとレジストリをデフラグするPageDefragユーティリティというものが提供されています。Windows 7/Vistaユーザの方はレジストリをデフラグするには、Auslogics Registry Defragのようなフリーウェアを使う必要があります。全てのレジストリは、システム起動の際にRAMへ読み込まれます。つまりレジストリの読み込み、書き込みはメモリに対して直接行われ、その後ディスクへ書き込まれます。レジストリのデフラグ状況が、目も当てられないほどひどい場合であれば、それをデフラグすることによって、パソコンのパフォーマンスは多少向上します。しかし、レジストリをデフラグしたからと言って、パソコンのスピードが急に速くなる、ということはありえません

■ギークの秘密:レジストリハック Geek Secrets: Figuring Out Registry Hacks

100318_07registry_.jpg

How-To Geekでは、定期的にレジストリハックについての記事をアップしています。読者の方から「そんなことどうやって発見したのですか?」という質問を頻繁に受けるそうです。こちらでは、今まで秘密とされてきたことを、みなさんと共有したいと思います。ただ、ここから話を進めるにはProcess Monitorのコピーが必要となります。Process Monitorウィンドウを開いたら、モニターしたいアプリケーションに対してフィルターを追加します。コントロールパネルなどのWindows設定の場合であれば、大抵の場合explorer.exeやmmc.exeなどを使う必要があります。フィルターを追加し、ログをクリアしたら、設定変更や機能を立ち上げる際に、どのレジストリキーへのアクセスがあるのか、というのをモニターすることができます。レジストリキーが特定できたらログを止め、キーを調べてみます。通常の場合、探しているものと同じキーに辿り着くのですが、存在に気が付かなかった、隠れ機能に辿り着く場合もあります。レジストリキーの場所が分かったら、既存のキーのバックアップを作成し、値を変更し、それでどうなるのかを試してみます。レジストリを変更することによって、パソコンが取り返しのつかない状態になってしまうこともあるので、これらの作業はテストマシンのみで行って下さい(つまりテスト環境がない方はやらない方が賢明です)。

というわけで、長文お疲れ様でした。レジストリクリーニングについて理解して頂けたでしょうか?ご意見、ご感想、コメントでお待ちしております!

How-To Geek (原文/訳:まいるす・ゑびす)