世の中には、Windowsのレジストリをクリーニングするというソフトが多数ある。
有料製品、無料ソフトなどいろいろ。
実はワテは昔、そういうのに物凄く凝っていた時期があった。
ワテが良く利用していたのが、以下の二種類のフリーソフトだ。
- CCleaner レジストリクリーニングの定番フリーソフト
- NTREGOPT レジストリ断片化を最適化する有名フリーソフト
レジストリを綺麗に掃除すると、パソコンの動きが素早くなる(?)と思っていたからだ。
また、その手のレジストリクリーニングソフトがクリーニング処理中に、
「不要な・・・を検出しました。」
というようなメッセージを表示すると、ゴミ屋敷が清掃されるかの如く、気分的にもスッキリしていたからだ。
でも、最近では、そんなソフトは決して使わない。
ウインドウズのレジストリの仕組みを知れば知るほど、レジストリのクリーニングなんて言うのは「百害あって一利無し」の典型だと思うからだ。
以下では、自称パソコンの達人のワテの経験に基づいて、その辺りの事情を解説したい。
では、本題に入ろう。
ウインドウズのレジストリとは何か
レジストリ (registry) は、MicrosoftのWindowsで用いられている設定情報を保存・管理する仕組みだ。
OSに関する各種の設定や、アプリケーションの設定情報など、何でも保管出来る。
例えばマイクロソフトオフィスをインストールした場合、Word、Excelなどがインストールされる。
そうすると、その後は拡張子 .docx のアイコンをダブルクリックするとWordが自動起動してそのファイルが開かれるが、そういう拡張子とアプリの関連付け情報などもレジストリが保持している。
また、あるいはそのオフィスのライセンスキーを入力して正式ライセンスとして登録した場合にも、それらの情報がレジストリに書き込まれるので、それ以降はあなたは正式なライセンス所有者としてオフィスが使えるようになるのだ。
それらのソフトが不要になった場合にコントロールパネルからソフトを削除出来るが、その時に、インストールしたファイルが何個あって何がどのフォルダに入っているかなども全部レジストリが管理しているので、その情報に基づいてそのソフトに関連付けされているファイルが削除される。
そして、そのソフトに関するレジストリ情報も削除される。
なので例えて言えばレジストリはデータベースのような物なのだが、大きな欠点がある。
以下では、その欠点に付いて説明したい。
実際にレジストリの中身を見てみる
実際にレジストリの中身を見るのは簡単だ。
ファイル名を指定して実行メニューを出して
regedit
と入れてOKをクリックすれば簡単に開く(下図)。
図 Windows10のレジストリの例
見た目は、普段よく使っているファイルエクスプローラーのように階層構造にデータが保持されているのだが、適当に階層を開いてみても分かるように兎に角、膨大な数のデータが保持されているのだ。
Windowsを新規でインストールした直後とか、新品のパソコンを買ってきた直後などでもそのWindowsを動かすのに必要な各種の設定情報が沢山書き込まれている。
さらに、そこに自分で何らかのソフトをインストールするとそのソフトがレジストリのどこかに何らかの情報を書き込む場合が多い。
レジストリの欠点
レジストリの中は、その用途に応じて幾つかの場所に分かれていて、
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_USERS
- HKEY_CURRENT_CONFIG
などの領域があるのだが、あなたが管理者(Administrator)でログインしている場合には管理者で有る以上何でも出来る訳で、レジストリのどこに何を書いても消しても自由なのだ。
これがWindowsレジストリの最大の欠点だとワテは思う。
もし怪しげなフリーソフトをインストールすると、意図的に何らかのスパイウェアを潜り込ませて、それ以降、パソコンが起動する度に
貴方のパソコンはウイルスに感染しています。
駆除するにはここをクリック!
みたいなメッセージを表示して、有料のソフトを購入させるサイトに誘導するなど、簡単に出来てしまう。なぜなら、レジストリにはパソコンを起動した時にどんなプログラムやプロセスを実行するかと言った情報も保管されているからだ。
あるいは、悪意が無くても作者の技術力が乏しいフリーソフトなどをインストールすると、本来はWindowsが使うように確保されている領域に何らかの情報を書き込んだり、あるいは、そのソフトが不要になったので削除した場合にも、一部のファイルが消されずに残ったり、あるいは、そのソフトがレジストリに書き残した不要なデータを残したままなどと言う状況はいくらでもある。
そのようにしてレジストリに残された不要な情報が、俗に「レジストリのゴミ」と呼ばれるのだ。
つまり、Windowsのレジストリはどんなに慎重にWindowsを使っていても、パソコンを何年も使っているとレジストリの中に正体不明のゴミデータが蓄積していくというお粗末な構造なのだ。
レジストリクリーナーソフトはそういうゴミを除去する目的で作られているのだが…
レジストリクリーナーソフト
確かに、レジストリをくまなく検索すると、明らかに不要と思われるデータがあるのは事実だ。しかし、それはほんの少し。
残りの大半は、
- Windowsが必要としているデータ
- インストールしたソフトが必要としているデータ
- ゴミなのか必要データなのかどうか分からないデータ
である。
先ほど上で開いたWindows10のレジストリ画面において、適当にフォルダを開いてみると分かると思うが、レジストリの中には何万件あるいは何十万件もの膨大なデータが保存されている。
その中から明らかに不要と分かるレジストリのゴミを100件程度消したところで、焼け石に水なのだ。
逆に、万一必要なデータをゴミと誤判定されてしまって消されてしまったらパソコンやソフトの動きがおかしくなるだろう。
そう言う訳で、Windowsは新品パソコンを購入しても、2年、3年と使っていると徐々にレジストリにゴミが溜まり、レジストリのサイズが大きくなって行く運命なのだ。
所謂、レジストリの肥大問題と言う奴やな。
レジストリの肥大化
例えて言うと、新居に引っ越して書斎で作業を始めるとする。
最初は、机の上も物が無くてスッキリしているので、鉛筆や消しゴムなど必要な文房具がどこにあるのかも直ぐにわかる。
でも数か月もすると、机の上には物が増えて来て、机の周りにも書籍、ノートその他の小物などいろいろ増えて来る。そうすると、消しゴムで文字を消そうとしたが消しゴムが見当たらない。ごそごそとその辺りを探すとようやく消しゴムが見つかった
ようやく消しゴムで文字が消せる。
こんな感じで、最初はどんなにすっきりした書斎でも数年も経つと、ごちゃごちゃして来る。
本棚とか、小物整理ケースなどを買って保管すれば見た目はスッキリするが、あの消しゴムはどこだっけ?と言う場合は人間なら記憶で一瞬であの引き出しに入れたと分かるが、パソコンのレジストリではそうは行かない。順番に検索して探すので、整理整頓されている書斎でも物が多いと目的の情報を探し出すのに時間が掛かるのだ。
なので、新しいパソコンを買って数年も使っていると、レジストリが肥大化して、動きがのろくなるのだ。
この肥大化によるパソコンの動作が鈍くなる症状はWindowsのレジストリ設計の最大の欠陥だと思うのだ。
もう少しましなレジストリ設計は無いのか?
誰が考えても現在のWindowsのレジストリ設計は貧相だ。
管理者権限でフリーソフトをインストールしたら、レジストリのどこにでも好きなデータを書き込める。
そのフリーソフトをアンインストールする場合には、ゴミが残らないという保証が無いのだ。
ゴミを残さずに完全にクリーニングするかどうかは、そのフリーソフト自身に任されているのだ。
そうすると、そのフリーソフトの作りが悪いとゴミが残る。
「立つ鳥跡を濁さず」では無くて、「立つ鳥、ゴミをレジストリにばら撒いて行く」と言う感じか。
そう言う問題を起こさないようにWindowsの設計を改良するのはそんなには難しくは無いだろう。
例えば以下のような設計にしておけば良い。
つまり、より厳密にWindowsでレジストリを管理して、ソフトAをインストールした場合には、そのソフトAに関する情報はWindows側で厳密に管理して、ファイルがどこに保存されたかとか、そのソフトAが利用できるレジストリの場所も厳密に制限して、他の領域には一切書き込めないなどすれば良い。
そのソフトAを削除した場合には、Windowsが管理している情報の基づいてソフトA関連の情報を全部消せば良い。そうすればゴミが残る可能性を限りなくゼロに出来る。
そういう厳密なレジストリ管理の仕組みになっていたらソフトA、B、Cなどを入れたり消したりしても、不要なゴミが残らないように出来るはずだ。
プログラミングの観点から判断しても、この程度の機能を持つ洗練されたレジストリ管理の仕組みを実現する事は、そんなに難しい作業では無いとワテは思う。
でも、現状では上記の通り、例えばワテが作った怪しげなフリーソフトでも管理者権限でインストールすると、レジストリのどこの場所にでも、何でも書き込めるという貧弱な仕様にWindowsはなっているのだ。
その設計は、Windows 3.1の頃から最新のWindows10に至るまで殆ど変わっていない。
要するにWindowsのレジストリは肥大化する運命にあるのだ。
肥大化したレジストリをスリムにするには?
レジストリクリーニングなどの危険なツールを使わずに肥大化したレジストリをスリムにする方法はあるか?
解決方法は、Windowsを新規に入れ直す。
これが手っ取り早くて確実だ。
レジストリクリーニングなどよりも確実で効果的だ。
パソコンを購入した当時の速度が蘇るだろう。
その為には、事前に必要なデータを外付けハードディスクなどにバックアップする。
ワテの場合は、バックアップデータが一つだと不安なので、最低二カ所にバックアップデータを取得する。
そして、バックアップデータが正しく取得出来ている事が確認出来たら、Windowsのインストールメディア(DVD-ROMなど)を使って、パソコンにWindowsを再インストールするのだ。
そうすれば、レジストリはそのパソコンを買った当時のスリムな状態に出来る。
その結果、確実にパソコンの性能が良くなる。
あるいは、最近のWindows10の場合には、年に1、2回は大型のアップデートが公開される。最近ではAnniversary UpdateとかCreators Updateと呼ばれるアップデートが公開された。
Updateとは言ってもその実体は、各種のバグが修正された最新のWindowsであり、それをインストールすると既存のWindowsが総入れ替えされる。
そう言う大型Updateをインストールする時に、単なるUpdateをするのでは無くてCleanインストールすれば真っ新(さら)のレジストリにする事が出来るので、そう言う大型アップデートを適用するタイミングでレジストリをスリム化すれば良い。
と言う事で、ここまでで説明したように、肥大化するWindowsのレジストリは厄介な存在なのだが、ワテは引っ掛かる点がある。
貧弱なWindowsレジストリの設計は意図的なのか?
つまりその、パソコンを数年使っていると動きが確実に遅くなる。
その要因の一つにこのレジストリ肥大化が大きく関係しているのは事実である。
マイクロソフトもその事は分かっているだろうし、パソコンメーカーだって知らない訳が無い。
それにも関わらず、Windowsのこのレジストリの仕組みは、Windows 3.1やWindows95の頃から基本的にはなんら変わっていないと思う。
新品パソコンを買って、数年使ったら、
「最近パソコンが遅くなって来たなあ~、なんでかなあ?」
「そろそろ新しいパソコンに買い替える時期かなあ~」
う~ん、これは、ユーザーにパソコンを数年ごとに買い替えさせる為の策略なのか?
などと、疑い深いワテは、邪推するのだが…
その真偽のほどは分からない。
仮にそれが事実だとしたら、その作戦を考えた人は頭がいいなあ。
この人か?
まあ10兆円の資産家になるには、それくらいの知恵が必要だと言う事か!?
Windowsの再インストールやクリーンインストールは大袈裟だと言う人は?
Windowsの再インストールや大型アップデートのタイミングでクリーンインストールすれば良いのは分ったが、そう言う作業は大袈裟で手間が掛かる。
とは言っても、慣れてしまえば簡単なのだが。
でも、やはり躊躇する人も多いだろう。
そう言う人の為に、もう少しお手軽にWindowsの高速化が出来る方法を紹介しよう。
パソコン起動時に無駄なアプリやサービスは極力実行しない。
そうすれば、パソコンの起動も素早くなり、起動後もスイスイ動くようになる。
そのやり方は以下の通り。
スタートアップにある不要なプログラムを無効化する
タスクマネージャーを開く(Control + Shift + Escape)。
スタートアップタブを開く。
このスタートアップに登録されていて状態が「有効」設定されているプログラムは、パソコンが起動した時に一緒に実行されるのだ。
無駄なプログラムを多数実行するとメモリも消費するしCPUも使う。
不要なものは無効化すると良い。ただし、必要なものまで無効化するとパソコンの動作に影響を与えるので、ネット検索などで調べて不要と思われるものを無効化すると良い。
不要なサービスを停止する
同じくタスクマネージャーの「サービス」タブには、沢山のサービスが登録されている。
「サービス」と言うのは、基本的には「プログラム」と同じだと思って良いだろう。
あるいは、「プロセス」と呼ばれる場合もある。
怪しげなフリーソフトをインストールしたら、その後、パソコンを起動するたびに宣伝が表示されるようになった経験がある人も多いだろう。
そう言うソフトは、スタートアップあるいはサービスに自分を登録して、パソコンが起動される度に自動で実行するのだ。
そう言う怪しいプログラムを見付けたら右クリックメニューで「停止」すると良い。
この場合も、必要なものまで停止するとパソコンの動作に影響を与えるので、ネット検索などで調べて不要と思われるプロセスを停止すると良い。
CCleanerはスパイウェアか?
株式会社インプレスさんの有名なサイトでCCleanerに関する驚くべき記事を見付けた。
これだ。
一部引用させて頂くと以下の通り。
「CCleaner」v5.45では、ユーザーの利用状況を12時間ごとに匿名でPiriformへ送信する“ハートビート”機能が追加された。
これは「CCleaner」の改善に役立てたり、不具合の修正を迅速に提供することを意図して設けられた機能だが、問題は“Active System Monitoring”機能と密接に統合されており、個別に無効化できないことだった。
引用元 https://forest.watch.impress.co.jp/docs/news/1136561.html
まあ要するに、定期的にCCleanerのサイトに自分のパソコンからデータが送信されるらしい。
それを無効化する設定が無いと言う事だ。
どんな情報が送られるのかは未確認だが、そんな気持ち悪い機能は入れて欲しくないと言う人が殆どだろう。
まあ、この手の情報送信機能はWindows10にも標準装備されている。Windows10をデフォルトでインストールすると自動的にそれらの送信機能は有効化されているのだ。知らずに使っている人が殆どだろう。
兎に角、そんな機能は利用者側にとって何らメリットは無いと思う。
万一、個人情報でも送信されると大変な事になるが、利用者は気付かない。
つまりまあ、そう言う怪しげな機能が入っているソフトは使わないのが一番だろう。
まとめ
当記事では、Windowsのレジストリに付いて解説した。
ワテの意見としては、
- レジストリのクリーニング
- レジストリの最適化
などというソフトの類は、お勧めしない。
その理由は、膨大なデータを保存しているレジストリから数百件程度のゴミを見付けて消しても殆ど効果が無いと思うからだ。かつ、万一判定ミスがあり、必要なデータまで消してしまうと、重大な問題を引き起こす。
もちろん信頼できるメーカーのちゃんとした製品なら、不要なゴミを削除してくれると思うので、多少はレジストリの肥大化を減らす事が出来るとは思う。
ちなみにワテの場合、「ノートンセキュリティ」と言うウイルス対策ソフトをインストールしているが、ノートンが以前販売していた「Norton 360」には、レジストリクリーニングツールも付属していた。
しかし、現在は「Norton 360」などのノートン製品は、「ノートンセキュリティ」と言う名前の製品に一本化されていて、レジストリクリーニング機能は廃止されたのだ。
何故廃止されたのか?と言う疑問に対しては、ノートンの英語のフォーラムにも幾つかの議論がある。
Why has Registry Cleanup been removed
Page Not Found - Norton
興味ある人は読んでみると良いだろう。
ワテも読んでみたが英語なので完全には理解出来ていないが、要するに
- レジストリクリーニング機能はあまり利用するユーザーがいない
- レジストリクリーニングは危険を伴うので事前にバックアップを取るなどが必要
- レジストリクリーニングがどんな作業を行うのか理解している人だけがやるべき
などの意見がある。ワテと同意見だ。
と言う事で、レジストリクリーニングソフトを使うか使わないかはあなたの自由だ。
レジストリクリーニングソフト
本を読む
バックアップをする
ワテの場合、重要データは外付けハードディスクにもバックアップを定期的に保存しているので、万一パソコン本体のHDDが壊れても安心だ。
レジストリのクリーニングに時間を費やすくらいなら、バックアップに時間を費やすほうが良いと思う。
それにしても3テラバイトでこの価格か。昔に比べれば物凄く安くなったもんだなあ。
ノートンセキュリティにもパソコン最適化機能あり
ワテが使っているノートンセキュリティにもパソコン最適化機能はある。
レジストリクリーニング専用ソフトを買うよりも、ノートンセキュリティをお勧めしたい。
追記(2017/1/3)
正月休みを利用してヘンテコなWEBサービスを作成してみた。
自作パソコンを作成する人には便利なツールだと思います。
興味ある人はお試しください。
コメント
> 順番に検索して探すので、
さすがに違うと思う。
> 整理整頓されている書斎でも物が多いと目的の情報を探し出すのに時間が掛かるのだ。
不要と書いているのに、ソフトを紹介しているのは、ただのアフェリなんですね。
自称パソコンの達人とかやはりあてになりませんな。
私は、レジストリクリーナーによって、windows更新用の専用ファイルを削除してしまいました。それは空ファイルを削除したことで起きました。また、プログラム中の一節のみを削除した時も、そのアプリは無用なものとなりました。
レジストリというのは、レジストリエディタで可視化されているのとは異なっていて、普通にバイナリのデータベースなので表示順になっているわけではないし、近年のものは機会を見て再配置されて最適化されているので、使い続けても際限なく肥大化することはないです。こういったエントリーを上げるならもうちょっと仕組みを勉強してください。
デビッド・カトラー様
VAX/VMS、WindowsNTの開発者のデビッド・カトラー様から直々にコメントを頂けるとは大変に光栄です。
さて、レジストリの肥大化に関するご指摘、大変ありがとうございました。
私の場合、レジストリの構造に関しましてはデビッド・カトラー様ご指摘の通り、レジストリエディタで可視化されているものしか知りません。
その結果、かなり頓珍漢な記事になっているかもしれませんが、管理者なら何でも出来てしまうレジストリ構造はやはり欠点が多いと思います。
今後も、より一層、正確性の高い記事を執筆出来るように、レジストリの仕組みなど勉強したいと思います。