Skip to content

MS_RegistrySettings

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

レジストリの設定方法

概要

Windows OSの設計思想」に書いたように、

  • レジストリの設定仕様のマニュアル化、
  • レジストリ直接編集のサポートが、

されていないケースがある。

設定

設定手段

GUI

  • レジストリ エディタ

シェル

シェル

# PowerShell では レジストリを PSDrive として扱える
Get-ItemProperty  'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
New-ItemProperty  'HKCU:\Software\Example' -Name 'Flag' -Value 1 -PropertyType DWord

プログラム言語

その他

  • Microsoft Windows Installer(MS_WindowsInstaller.md
  • グループ・ポリシー(グループ ポリシー基本設定でレジストリ項目を配布できる)

ハイブ・キー

レジストリの HKEY_*** は、ハイブ・キーの略であるもよう。
ハイブとは、レジストリのセクションを指すもの。

移行メモ: HKEY の由来は Handle to a KEY(キーへのハンドル)で、 「ハイブ・キーの略」ではない。 ハイブ(hive)は、レジストリを構成するファイル単位のツリー (SYSTEMSOFTWARESAMNTUSER.DAT など)を指す別概念。 原文の「ハイブとは、レジストリのセクションを指すもの」という説明のほうは妥当。

一覧

# フォルダー/定義済みキー (略号) 説明
1 HKEY_USERS ("HKU") コンピューターのユーザー プロファイル
2 HKEY_CURRENT_USER ("HKCU") 現在ログオンしているユーザーの構成情報。
HKEY_USERS ("HKU") の下のログオンしているユーザーのサブキーにリンク。
3 HKEY_LOCAL_MACHINE ("HKLM") コンピューター固有の構成情報(すべてのユーザーに適用される)
4 HKEY_CLASSES_ROOT ("HKCR") コチラを参照。
5 HKEY_CURRENT_CONFIG ("HKCC") システムの起動時にローカル コンピューターにより
使用されるハードウェア プロファイル
HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current へのリンク

HKU と HKCU

  • HKEY_CURRENT_USER は、HKEY_USERS のサブキー
  • Windowsは起動時に、ログインするユーザーの各種設定情報(NTUSER.DAT)を
    HKEY_USERS\<ユーザーの SID> にロードし、HKEY_CURRENT_USER はそこへのリンクとなる。
    • ユーザーのログイン中は、HKEY_CURRENT_USER キー内の情報のみが参照・変更され、
      HKEY_USERS キーに保管されている他のユーザーの情報は一切その影響を受けない。
    • また、Windowsの終了時(ログオフ時)には、変更された設定情報が
      ユーザー プロファイル内の NTUSER.DAT に書き戻される。

移行メモ(正誤): 原文は「HKEY_USERS から …… HKEY_CURRENT_USER キーにコピー」 としていたが、HKCU は HKU 配下の当該ユーザー SID キーへの**リンク(別名)**であり、 実体のコピーではない。HKCU への変更は即座に HKU\<SID> にも反映される。 ディスク上の NTUSER.DAT との同期はログオン/ログオフ時に行われる。

HKCR の詳細

  • エクスプローラーを使用してファイルを開くときに正しいプログラムを起動するための情報を格納。
  • 下記の 2 つのソースからの情報をマージしたレジストリのビューを提供
    • HKEY_LOCAL_MACHINE\Software\Classes キー
      ローカル コンピューター上のすべてのユーザーに適用可能な既定の設定が格納される。
    • HKEY_CURRENT_USER\Software\Classes キー
      既定の設定を無効にして、対話ユーザーだけに適用する設定が格納される。
  • HKEY_CLASSES_ROOT の下のキーにキーを書き込むと、
    • 基本的には HKEY_LOCAL_MACHINE\Software\Classes の下に情報が格納される。
    • しかし、HKEY_CURRENT_USER\Software\Classes の下に既にそのキーが存在している場合、
      • HKEY_LOCAL_MACHINE\Software\Classes の下ではなく、
      • HKEY_CURRENT_USER\Software\Classes に情報が格納される。

注意点

レジストリ設定を誤ると、システムが正しく動作しなくなるため、変更には注意が必要。

  • 通常、専用の設定インターフェイスやツールが用意されており、
    レジストリを直接編集する必要が無い場合は、直接編集の操作を控えること。
  • レジストリ値を変更する場合は、最初にレジストリをバックアップすること。
  • 参考
    • Windows 自動パラメタとチューニング(MS_WindowsAutoTuning.md

その他

バックアップ

  • レジストリ エディタを使用して、レジストリの一部をエクスポートすることにより、バックアップ
  • システムの復元ポイントの作成、または reg export / reg save の利用

移行メモ: 原文の「System.dat と User.dat をコピーしてレジストリ全体をバックアップ」は Windows 9x 系の話。NT 系(2000 以降の現行 Windows)にこれらのファイルは無く、 ハイブは %SystemRoot%\System32\config\(SYSTEM / SOFTWARE / SAM / SECURITY)と 各ユーザー プロファイルの NTUSER.DAT に分かれている。 しかもこれらは実行中の OS がロックしているため単純コピーはできない。

64bit

参考


Tags: Windows

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally