-
Notifications
You must be signed in to change notification settings - Fork 0
MS_RegistrySettings
- TOP > インフラストラクチャ > Windows
「Windows OSの設計思想」に書いたように、
- レジストリの設定仕様のマニュアル化、
- レジストリ直接編集のサポートが、
されていないケースがある。
- レジストリ エディタ
(シェル)
- WSH(
MS_VBS.md) - PowerShell
# PowerShell では レジストリを PSDrive として扱える
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
New-ItemProperty 'HKCU:\Software\Example' -Name 'Flag' -Value 1 -PropertyType DWord- VC++(Win32)
- .NET
- VB:
My.Computer.Registry Microsoft.Win32.Registry
- VB:
- Microsoft Windows Installer(
MS_WindowsInstaller.md) - グループ・ポリシー(グループ ポリシー基本設定でレジストリ項目を配布できる)
レジストリの HKEY_*** は、ハイブ・キーの略であるもよう。
ハイブとは、レジストリのセクションを指すもの。
移行メモ:
HKEYの由来は Handle to a KEY(キーへのハンドル)で、 「ハイブ・キーの略」ではない。 ハイブ(hive)は、レジストリを構成するファイル単位のツリー (SYSTEM、SOFTWARE、SAM、NTUSER.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 へのリンク |
- HKEY_CURRENT_USER は、HKEY_USERS のサブキー
- Windowsは起動時に、ログインするユーザーの各種設定情報(
NTUSER.DAT)を
HKEY_USERS\<ユーザーの SID>にロードし、HKEY_CURRENT_USER はそこへのリンクとなる。- ユーザーのログイン中は、HKEY_CURRENT_USER キー内の情報のみが参照・変更され、
HKEY_USERS キーに保管されている他のユーザーの情報は一切その影響を受けない。 - また、Windowsの終了時(ログオフ時)には、変更された設定情報が
ユーザー プロファイル内のNTUSER.DATに書き戻される。
- ユーザーのログイン中は、HKEY_CURRENT_USER キー内の情報のみが参照・変更され、
移行メモ(正誤): 原文は「HKEY_USERS から …… HKEY_CURRENT_USER キーにコピー」 としていたが、HKCU は HKU 配下の当該ユーザー SID キーへの**リンク(別名)**であり、 実体のコピーではない。HKCU への変更は即座に
HKU\<SID>にも反映される。 ディスク上のNTUSER.DATとの同期はログオン/ログオフ時に行われる。
- エクスプローラーを使用してファイルを開くときに正しいプログラムを起動するための情報を格納。
- 下記の 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)
- Windows 自動パラメタとチューニング(
- レジストリ エディタを使用して、レジストリの一部をエクスポートすることにより、バックアップ
- システムの復元ポイントの作成、または
reg export/reg saveの利用
移行メモ: 原文の「System.dat と User.dat をコピーしてレジストリ全体をバックアップ」は Windows 9x 系の話。NT 系(2000 以降の現行 Windows)にこれらのファイルは無く、 ハイブは
%SystemRoot%\System32\config\(SYSTEM / SOFTWARE / SAM / SECURITY)と 各ユーザー プロファイルのNTUSER.DATに分かれている。 しかもこれらは実行中の OS がロックしているため単純コピーはできない。
- 64bit Windows では、32bit アプリ向けに
HKLM\Software\WOW6432Nodeへのレジストリ リダイレクトが行われる(WOW64)。 - 64 ビット バージョンの Windows でシステム レジストリを表示する方法
- レジストリ - Wikipedia
- 上級ユーザー向けの Windows レジストリ情報
- Registry クラス (Microsoft.Win32)
- @IT > Windows OS入門 第5回 システム設定を集中管理するレジストリ
- @IT > 第6回 レジストリのリダイレクトと仮想化およびレジストリ操作ツール
- @IT > コマンドプロンプトでレジストリを操作する
- @IT > PowerShellでレジストリ情報を操作する
Tags: Windows
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。