はじめに
Windows レジストリは 、システム設定、ユーザー設定、アプリケーション設定のための集中型構成データベースとして機能する、Windows オペレーティングシステムの重要なコンポーネントです。Windows レジストリを理解することで、システムのパフォーマンスを最適化し、問題をトラブルシューティングし、Windows エクスペリエンスをカスタマイズできます。ただし、レジストリの編集には注意が必要です。不適切な変更を行うと、システムが不安定になる可能性があります。
目次
Windows レジストリとは?
Windows レジストリは、Windows とその上で実行されるアプリケーションの構成設定と運用データを格納する階層型データベースです。チューニングパラメーター、デバイス構成、ユーザープロファイルなどが含まれています。この集中型リポジトリにより、Windows とそのプログラムは、スムーズな動作に必要な重要な情報を取得できます。
Windows レジストリの主な機能:
- ユーザープロファイルと設定を保存します(例:
ntuser.datファイル)。 - インストールされているアプリケーションとそのファイルの関連付けを追跡します。
- システムのハードウェア構成を維持します。
- I/O 通信に使用されるポートを定義します。
- フォルダーのプロパティとプログラムのアイコンをカスタマイズします。
重要な注意: レジストリを直接編集すると、システムの不安定化や Windows の完全な再インストールが必要になるなど、深刻な問題が発生する可能性があります。変更を行う前に、必ずレジストリをバックアップしてください。
レジストリの構造
Windows レジストリは、 ハイブと呼ばれるセクションに編成されており、それぞれがルートキーを持つレジストリツリーを含んでいます。サブキーとその値はルートの下にあります。
一般的なレジストリハイブ:
- HKEY_LOCAL_MACHINE (HKLM): ユーザーに関係なく、コンピューター固有の構成情報が含まれています。
- HKEY_CURRENT_USER (HKCU): 現在ログインしているユーザーの設定が格納されています。
- HKEY_CLASSES_ROOT (HKCR): ファイルの関連付けと、登録されているアプリケーションに関する情報が含まれています。
- HKEY_USERS (HKU): システム上のすべてのユーザープロファイルの設定が格納されています。
- HKEY_CURRENT_CONFIG (HKCC): 現在のハードウェア構成に関する情報が含まれています。

ハイブのパスと対応するファイル
各レジストリハイブは、システムハードディスク上の特定のファイルに対応しています。例を次に示します。
| ハイブのパス | 対応するファイルの場所 |
|---|---|
| HKEY_LOCAL_MACHINE\BCD00000000 | BOOT\BCD |
| HKEY_LOCAL_MACHINE\Components | %SystemRoot%\system32\Config\Components |
| HKEY_LOCAL_MACHINE\System | %SystemRoot%\system32\Config\System |
| HKEY_LOCAL_MACHINE\Sam | %SystemRoot%\system32\Config\Sam |
| HKEY_LOCAL_MACHINE\Security | %SystemRoot%\system32\Security |
| HKEY_LOCAL_MACHINE\Software | %SystemRoot%\system32\Software |
| HKEY_USERS<SID of User Name> | \Users\<username>\ntuser.dat |
| HKEY_USERS.Default | %SystemRoot%\system32\Default |
一部のハイブ( HKEY_LOCAL_MACHINE\Hardwareなど)は揮発性であり、対応するファイルがありません。これらのハイブには、物理デバイスとそれに割り当てられたリソースに関する情報が格納されています。
レジストリの表示と編集
Windows レジストリには、次のようなツールを使用してアクセスし、変更できます。たとえば、 Registry Editor (REGEDIT.EXE)があります。強力ではありますが、Registry Editor は構文を検証したり、エラーを防いだりしません。より安全に編集するには、Windows コントロールパネルに用意されているユーティリティを使用してください。
プロのヒント: 絶対に必要な場合を除き、レジストリの直接変更は避けてください。誤った編集を行うと、オペレーティングシステムに障害が発生したり、使用できなくなったりする可能性があります。
コマンドラインユーティリティ:Reg.exe
Windows には、高度なレジストリ操作のためのコマンドラインユーティリティ Reg.exe も用意されています。一般的なコマンドは次のとおりです。
- REG QUERY: レジストリ値を取得します。
- REG ADD: 新しいキーまたは値を追加します。
- REG DELETE: キーまたは値を削除します。
- REG SAVE: ハイブをファイルに保存します。
- REG IMPORT: ファイルからレジストリ設定をインポートします。
例:
REG QUERY HKLM\Software\Microsoft\ResKit /v Version
Displays the value of the registry value Version
REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s
Displays all subkeys and values under the registry key Setup
on remote machine ABC
REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se #
Displays all the subkeys and values with "#" as the seperator
for all valuenames whose type is REG_MULTI_SZ.
REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e
Displays Key, Value and Data with case sensitive and exact
occurrences of "SYSTEM" under HKLM root for the data type REG_SZ
REG QUERY HKCU /f 0F /d /t REG_BINARY
Displays Key, Value and Data for the occurrences of "0F" in data
under HKCU root for the data type REG_BINARY
REG QUERY HKLM\SOFTWARE /ve
Displays Value and Data for the empty value (Default)
under HKLM\SOFTWARE
レジストリファイルの保護メカニズム
Windows には、レジストリを保護し、エラーから回復するための仕組みがいくつかあります。
- ログハイブ: レジストリへの書き込みは、まずログに記録されてからハイブファイルにフラッシュされます。
- ハイブ同期: データの整合性を確保するため、変更は 5 秒ごとに同期されます。
- 自動修復: 破損した、または無効なレジストリデータは、システム起動時に再初期化されます。
Last Known Good Configuration の使用
Last Known Good Configuration 機能を使うと、 CurrentControlSet への変更によって起動に失敗した場合に、レジストリを最後に成功した状態に戻すことができます。この機能にアクセスするには、次の手順に従います。
- コンピューターを再起動します。
- 起動プロセス中に F8 を押してください。
- 詳細ブート オプション メニューから Last Known Good Configuration を選択してください。
レジストリ編集のベストプラクティス
レジストリを編集すると、強力なカスタマイズオプションを利用できますが、慎重に行う必要があります。次のベストプラクティスに従ってください。
- まずバックアップを取る: 変更を行う前に、必ずレジストリのバックアップを作成してください。
- 信頼できるツールを使用する: より安全に変更を行うには、Windows 標準のツールを使用してください。
- 変更を記録する: トラブルシューティングのために、編集の記録を残しておきましょう。
- 不要な編集を避ける: 絶対に必要な場合にのみ変更を行ってください。
まとめ
Windows レジストリはオペレーティングシステムの基本的な部分であり、構成管理、ユーザーのカスタマイズ、アプリケーション機能を可能にしています。その構造と機能を理解することで、システムのパフォーマンスを最適化し、問題を効果的にトラブルシューティングできます。ただし、常に慎重に作業を進め、予期せぬ結果を防ぐためにレジストリをバックアップしてください。