Windowsレジストリとは?HKEYルートキーの種類と役割をわかりやすく解説

Windows

Windowsのトラブル対応やカスタマイズをしていると、「レジストリを編集してください」という手順を目にすることがあります。
でも「レジストリって何?」「HKCUとかHKLMって何の略?」と感じる方も多いはず。
この記事では、Windowsレジストリの仕組みと、HKEYから始まるルートキー5種類の役割をわかりやすく解説します。


スポンサーリンク

Windowsレジストリとは?

レジストリ(Registry)とは、Windowsがシステムやアプリケーションの設定情報を一元管理するための階層型データベースです(Microsoft Learn「レジストリの構造」より)。

具体的には、次のような情報が格納されています。

  • Windowsのシステム設定(画面解像度・言語設定など)
  • インストールされたアプリの設定
  • ハードウェア・ドライバの情報
  • ファイルとアプリの関連付け(どのアプリで開くか)
  • 各ユーザーごとのデスクトップや入力設定

INIファイルからレジストリへ

Windows 3.1以前は、アプリの設定を .ini ファイルというテキストファイルで個別に管理していました。
しかしシステムが複雑化するにつれ、ばらばらに存在する大量のiniファイルの管理が困難になります。
そこでWindows 95・Windows NTから導入されたのが、設定情報を一箇所にまとめて管理するレジストリです(ASCII.jp「Windowsの設定を保存するレジストリの構造を分析する」より)。


レジストリの構造:キー・サブキー・値

レジストリの構造は、エクスプローラーのフォルダ階層によく似ています。

レジストリの用語エクスプローラーのたとえ説明
キー(Key)フォルダ設定のカテゴリを表す入れ物
サブキー(Subkey)サブフォルダキーの中にあるキー
値(Value)ファイル実際のデータが入っている場所

たとえば、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run というキーには、Windows起動時に自動実行されるプログラムの一覧が格納されています(e-Words「レジストリキー」より)。

レジストリの実体ファイル(ハイブ)

レジストリのデータは、ディスク上のハイブファイルに保存されています。
HKEY_CURRENT_USER 以外のハイブは、%SystemRoot%\System32\Config フォルダ(通常は C:\Windows\System32\Config)に格納されています(Microsoft Learn「上級ユーザー向けの Windows レジストリ」より)。

主なハイブファイルは次のとおりです。

  • SAM:ユーザーアカウントのパスワード情報
  • SECURITY:セキュリティポリシー
  • SOFTWARE:インストール済みソフトの設定
  • SYSTEM:システム起動に必要な設定

なお、ハイブはバイナリ形式のため、テキストエディタでは内容を確認できません。
.reg ファイルというテキスト形式にエクスポートすることで、人が読める形になります(Wikipediaより)。


HKEYとは?

レジストリを構成するキーのうち、最上位に位置するものをルートキー(事前定義済みキー)と呼びます。
ルートキーはすべて HKEY_ から始まる名前を持っており、これを略して HKEY(エイチキー) と呼ぶこともあります。

レジストリエディター(regedit.exe)を開くと、左側のツリーに5つのルートキーが表示されます。


HKEY ルートキー5種類の一覧

ルートキー名略称主な格納内容
HKEY_CLASSES_ROOTHKCRファイルの関連付け・COMオブジェクト
HKEY_CURRENT_USERHKCU現在ログイン中のユーザー設定
HKEY_LOCAL_MACHINEHKLMPC全体(全ユーザー共通)の設定
HKEY_USERSHKU全ユーザーのプロファイル設定
HKEY_CURRENT_CONFIGHKCC現在のハードウェアプロファイル

各ルートキーの詳細

HKEY_CLASSES_ROOT(HKCR)

ファイルとアプリの関連付け情報が格納されています。

ファイルをダブルクリックしたとき「どのアプリで開くか」を判断するための情報がここにあります。
たとえば .docx ファイルをダブルクリックしたらWordが起動する、といった設定です。

技術的には、HKEY_LOCAL_MACHINE\Software\Classes(全ユーザー共通)と HKEY_CURRENT_USER\Software\Classes(ユーザー固有)の2つのデータを統合したビューになっています。
両方に同じ設定が存在する場合、HKEY_CURRENT_USER側が優先されます(Microsoft Learn「HKEY_CLASSES_ROOT Key」より)。

HKEY_CURRENT_USER(HKCU)

現在ログインしているユーザー固有の設定が格納されています。

  • デスクトップの壁紙・テーマ
  • マウス・キーボードの設定
  • 各アプリの個人設定
  • スタートメニューの設定

実態は HKEY_USERS 内にある、そのユーザーのサブキーへのリンク(エイリアス)です。
HKCU への書き込みは管理者権限がなくても行えるため、アプリが個人設定を保存する場所として広く使われます。

HKEY_LOCAL_MACHINE(HKLM)

PC全体(全ユーザー共通)のシステム設定が格納されています。

ここの設定は、そのPCにログインするすべてのユーザーに適用されます。
主なサブキーは次のとおりです。

  • HARDWARE:PCに接続されたハードウェアの情報(揮発性。起動ごとに生成)
  • SOFTWARE:インストール済みアプリの情報
  • SYSTEM:Windowsサービスや起動設定
  • SAM:ユーザーアカウント情報(通常は保護されて参照不可)
  • SECURITY:セキュリティポリシー(通常は保護されて参照不可)

HKLM の書き込みには管理者権限が必要です(Microsoft Learn「上級ユーザー向けの Windows レジストリ」より)。

HKEY_USERS(HKU)

PCに登録されているすべてのユーザーのプロファイル設定が格納されています。

ユーザーごとのサブキーは S-1-5-21-... という形式のSID(セキュリティ識別子)で管理されています。
ログイン中のユーザーの設定は HKEY_CURRENT_USER にリンクされており、実体はここにあります。

HKEY_CURRENT_CONFIG(HKCC)

現在使用中のハードウェアプロファイル設定が格納されています。

実態は HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current へのリンクです。
複数のハードウェアプロファイルを使い分けている場合(業務用PCなど)に参照されます。
一般的なユーザーが直接操作する機会はほとんどありません。


レジストリエディターの開き方

レジストリの内容を確認・編集するには、レジストリエディター(regedit.exe)を使います。

  1. Windowsキー + R を押して「ファイル名を指定して実行」を開く
  2. regedit と入力して「OK」をクリックする
  3. ユーザーアカウント制御(UAC)の確認画面で「はい」をクリックする

レジストリエディターが起動し、左側にルートキー5つのツリーが表示されます。


レジストリ編集前にバックアップを取る

レジストリを誤って変更すると、Windowsが起動しなくなるなど深刻なトラブルの原因になります。
編集前には必ずバックアップを取っておきましょう。

バックアップの手順(.regファイルへのエクスポート)

  1. レジストリエディターを開く
  2. バックアップしたいキーを右クリック → 「エクスポート」を選択
  3. 保存先を指定してファイル名を付け、「保存」をクリックする

保存された .reg ファイルをダブルクリックすると、レジストリを元の状態に戻せます。


まとめ

Windowsレジストリは、システムやアプリの設定情報をまとめて管理する階層型のデータベースです。
HKEY_ から始まるルートキーは5種類あり、それぞれ役割が異なります。

  • ファイルの関連付けは HKCR
  • ログイン中のユーザー設定は HKCU
  • PC全体の共通設定は HKLM
  • 全ユーザーのプロファイルは HKU
  • ハードウェアプロファイルは HKCC

レジストリを直接編集する場面は限られていますが、仕組みを理解しておくとトラブル対応の際に役立ちます。
編集の際は必ずバックアップを取ってから作業してください。


参考情報源:

コメント

タイトルとURLをコピーしました