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_ROOT | HKCR | ファイルの関連付け・COMオブジェクト |
| HKEY_CURRENT_USER | HKCU | 現在ログイン中のユーザー設定 |
| HKEY_LOCAL_MACHINE | HKLM | PC全体(全ユーザー共通)の設定 |
| HKEY_USERS | HKU | 全ユーザーのプロファイル設定 |
| HKEY_CURRENT_CONFIG | HKCC | 現在のハードウェアプロファイル |
各ルートキーの詳細
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)を使います。
Windowsキー + Rを押して「ファイル名を指定して実行」を開くregeditと入力して「OK」をクリックする- ユーザーアカウント制御(UAC)の確認画面で「はい」をクリックする
レジストリエディターが起動し、左側にルートキー5つのツリーが表示されます。
レジストリ編集前にバックアップを取る
レジストリを誤って変更すると、Windowsが起動しなくなるなど深刻なトラブルの原因になります。
編集前には必ずバックアップを取っておきましょう。
バックアップの手順(.regファイルへのエクスポート)
- レジストリエディターを開く
- バックアップしたいキーを右クリック → 「エクスポート」を選択
- 保存先を指定してファイル名を付け、「保存」をクリックする
保存された .reg ファイルをダブルクリックすると、レジストリを元の状態に戻せます。
まとめ
Windowsレジストリは、システムやアプリの設定情報をまとめて管理する階層型のデータベースです。HKEY_ から始まるルートキーは5種類あり、それぞれ役割が異なります。
- ファイルの関連付けは HKCR
- ログイン中のユーザー設定は HKCU
- PC全体の共通設定は HKLM
- 全ユーザーのプロファイルは HKU
- ハードウェアプロファイルは HKCC
レジストリを直接編集する場面は限られていますが、仕組みを理解しておくとトラブル対応の際に役立ちます。
編集の際は必ずバックアップを取ってから作業してください。
参考情報源:

コメント