Windows
 Computer >> コンピューター >  >> システム >> Windows

Windowsレジストリの基本:その仕組みと謎を徹底解説

Windowsレジストリは、Microsoft Windowsオペレーティングシステムの設定やオプションを保存する中央データベースです。ハードウェア、OS本体、多くのサードパーティ製ソフトウェア、ユーザー情報、PCの各種設定など、システムに関するあらゆる情報がここに集約されています。この記事では、Windowsレジストリの基本についてわかりやすく解説します。

Windowsレジストリの基本:その仕組みと謎を徹底解説

ユーザーがコントロールパネルの設定、ファイルの関連付け、システムポリシー、あるいはインストール済みソフトウェアの設定を変更すると、その変更内容はレジストリに反映・保存されます。また、レジストリはカーネルの動作を知る窓でもあり、パフォーマンスカウンターや現在アクティブなハードウェアなどのランタイム情報も提供しています。

Windowsレジストリは、かつてWindowsプログラムの設定を保存するために使われていた、プログラムごとのINIファイルの氾濫を整理するために導入されました。INIファイルはシステム中に散在しがちで、管理や追跡が非常に困難でした。レジストリの登場により、設定情報を一元管理できるようになったのです。

関連記事: レジストリへの変更はいつ保存される?

Windowsレジストリの基本構造

レジストリは、以下の5つのルートキーで構成されています:

  • HKEY_CLASSES_ROOT
  • HKEY_CURRENT_USER
  • HKEY_LOCAL_MACHINE
  • HKEY_USERS
  • HKEY_CURRENT_CONFIG

Windowsレジストリの基本:その仕組みと謎を徹底解説

ルートキーの下にはサブキーが含まれます。サブキーはさらに独自のサブキーを持つことができ、必ず少なくとも1つの値を持ちます。これを「デフォルト値」と呼びます。あるキーと、その配下のすべてのサブキーや値をまとめたものを「ハイブ(Hive)」といいます。

レジストリは、ディスク上ではsystem32\configフォルダ内に複数の独立したハイブファイルとして保存されています。これらのハイブファイルは、Windowsの起動時やユーザーのログオン時にメモリへ読み込まれます。ハイブが物理的にどこに格納されているかを確認するには、次のキーを参照してください:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\HiveList
Windowsレジストリの基本:その仕組みと謎を徹底解説

レジストリで使われる主なデータ型

  • REG_SZ:SZは「ゼロ終端文字列」を意味します。UnicodeおよびANSI文字を含めることができる可変長の文字列です。
  • REG_BINARY:0と1で構成されるバイナリデータを格納します。
  • REG_DWORD:「ダブルワード」と呼ばれる32ビットの数値型です。0〜2^32までの値を保持できます。
  • REG_QWORD:「クアドループルワード」と呼ばれる64ビットの数値型です。
  • REG_MULTI_SZ:1つの値に対して、複数のゼロ終端文字列のグループを格納します。
  • REG_EXPAND_SZ:%SystemRoot%のような環境変数への未展開の参照を含むゼロ終端文字列です。

Windowsにおけるレジストリ仮想化

Windows Vista以降では、ファイル仮想化とともにレジストリも仮想化されるようになりました。そのため、Windows XPとは異なり、レジストリの肥大化に悩まされることは少なくなっています。この仕組みはWindows 7以降にも引き継がれています。

仮想化とは、簡単に言えば、アプリケーションがWindowsのファイルシステム上のシステムフォルダや、レジストリの「マシン全体に影響するキー」へ書き込むことを防ぐ仕組みです。ただし、これによって標準ユーザーアカウントがアプリケーションをインストールしたり実行したりできなくなるわけではありません。

Windows Vista以降では、UAC(ユーザーアカウント制御)がこのレジストリ仮想化機能を利用し、次のサブキーへの書き込み試行をリダイレクトします:

HKEY_LOCAL_MACHINE\Software

アプリケーションがこのハイブへの書き込みを試みると、OSは代わりにユーザーごとの次の場所へ書き込みを行います:

HKEY_CLASSES_ROOT\VirtualStore\Machine\Software

この処理は極めて控えめに行われるため、ユーザーが気づくことはほとんどありません。

これがレジストリ仮想化の概要であり、有用なセキュリティ機能のひとつです。

また、Windows Vista以降を支えるもうひとつの新しい技術として「カーネルトランザクションマネージャー」にも触れておきましょう。これにより「トランザクション対応レジストリ」が実現され、一種のレジストリのロールバックが可能になります。ただし、この機能はレジストリエディターには実装されておらず、トランザクション処理を用いた堅牢なアプリケーションを開発する必要がある開発者向けに設計されたものです。

関連記事: Windowsでレジストリキーを作成する方法

レジストリエディターの使い方

Windows 10/8/7/Vistaにおいて、レジストリを直接操作するための主要ツールがレジストリエディターです。起動するには、スタートメニューの検索ボックスにregeditと入力し、Enterキーを押すだけです。

レジストリを操作する際には細心の注意が必要です。確認ダイアログや保存のプロンプトは表示されず、変更は即座に反映されるためです。

Windows 10 バージョン1703以降では、アドレスバーを使って任意のレジストリキーへ直接ジャンプできるようになりました。

特に重要なのが次のハイブです:

HKEY_LOCAL_MACHINE\System\CurrentControlSet

このハイブ内のキーはWindowsの起動に不可欠であるため、常にバックアップが維持されています。必要に応じて、セーフモードで起動し「前回正常起動時の構成(Last Known Good Configuration)」を選択することで復元できます。

こちらの記事もおすすめです:

  1. 破損または損傷したレジストリを修復する方法
  2. スタートメニューとタスクバーのレジストリ調整テクニック
  3. レジストリのバックアップと復元の手順
  4. レジストリへの変更を監視する方法
  5. レジストリエディターの複数インスタンスを開く方法
  6. Windowsのレジストリパスで絵文字が使われている!?

Windowsレジストリの基本:その仕組みと謎を徹底解説

  1. Windowsレジストリのバックアップと復元方法を徹底解説

    レジストリは、コンピューターにとって「脳」のような役割を果たす重要な存在です。Windowsのコンポーネント、サービス、アプリケーションなど、システムのほぼすべてに関わる構成情報や設定がここに格納されています。 レジストリを理解するうえで押さえておきたい基本概念は「キー」と「値」の2つです。キーはフォルダのようなオブジェクトで、レジストリエディターの画面上でも実際にフォルダと同じように表示されます。一方、値はフォルダ内のファイルのようなもので、具体的な設定内容が記録されています。 なぜレジストリのバックアップが必要なのか Windowsパソコンの設定に大きな変更を加えたい場合、多くはWindo

  2. Windows 10のレジストリハックでPCを最適化する方法

    Windows 10は豊富な機能と美しいインターフェースを備えています。しかし、OSのすべての機能や設定が公開されているわけではなく、通常の操作ではアクセスできないものも数多く存在します。中には意味のないものもありますが、役立つものもたくさんあります。 こうした隠れた機能や設定を利用するには、「レジストリエディター」にアクセスする必要があります。 レジストリエディターは主に、設定の変更、レジストリ内のジャンクデータの削除、システムエラーの修正などに使われるツールです。それ以外にも、隠された機能や設定へのアクセス手段としても活用できます。 この記事では、Windows 10の便利な機能や設定にア