Wi 社 0 5 102 ハイプに対応しているのは [HKEY-LOCAL-MACHINE] [HKEY-USERS] たけ ()I (4) で説明します。 の中には対応するハイブを持たないものがあることになります。そのカラクリは次項 ストリキーにシステム関連ハイプがすべて読み込まれます。ということは、サブツリー は [HKEY_LOCAL_MACHINE] サブツリーだけです。このサブツリーの下位のレジ さて、問題はシステム関係の対応関係です。システム関係のハイプが対応しているの いる [UserCIass. dat] という別のハイプに対応しています。 中 ( [%Local SettingsYApplication Data%Microsoft*Windows] ) に保存されて これはユーザ別のファイルタイプ情報を格納しているもので、プロファイルフォルダの [HKEY_USERS] の中に末尾が [ ・・・・・・ロ asses ] となっているキーがありますが、 ません。それらのハイプはそのユーザがログオンしたときに読み込まれます。なお す。すでに作成済みであっても、現在ログオンしていないユーザのハイプは読み込まれ 成したいくつかのハイブ (Windows XP では 3 個、 Windows 2000 では 1 個 ) だけで だし実際に読み込まれているのは現在ログオンしているユーザのハイブとシステムが作 ユーザ関係のハイプはすべて [HKEY_USERS] の中のキーに対応しています。た サブツリーとハイブの対応関係は右図のようになっています。 ハイプとサブツリーの対応関係 USERS] の 2 つのサブツリーだけなのです。その構造を詳しく見てみましよう。 て存在するハイプが直接対応しているのは [HKEY-LOCAL-MACHINE] [HKEY 複雑です。実はサブツリーとハイプは 1 対 1 に対応しているのではなく、ファイルとし ブツリーに表示されている、というのなら話はわかりやすいのですが、実際はもう少し それそれのサブツリーに対応するハイプが 1 個ずつ存在していて、ハイブの内容がサ っているのでしようか。 とに分割されていることがわかりました。ではこのサブツリーとハイブの関係はどうな システム関係の数個のファイルとプロファイルフォルダに格納されているユーザハイブ がわかりました。同時にレジストリの内容を保存したファイル、すなわち「ハイブ」も レジストリは 5 個のデータブロック、すなわち「サブツリー」に分割されていること 新サブツリーとハイプ
レジストリ各部の名称と意味 Windows LLJLJLJ ではレジストリエデイタに表示される各バートの名称と意味について説明します。 実際のレジストリの中がどのような構造になっているかはともかく、通常、技術資料 などでレジストリが問題となる場合はこのレジストリエデイタに表示されているような 構造であることが前提となっています。したがって画面上の各部の名称と意味について は、レジストリに関連した情報を理解する際、必要となる基本知識になっています。本 書でも、以降の説明ではこれらの知識を前提として解説を進めていきます。部分的には わかりづらい箇所があるかもしれませんが、できるだけ覚えるようにしてください。 レジストリエデイタに表示されるレジストリの構造 左側ペイン ( ウインドウ ) の [ マイコンビュ - タ ] の直下にはメインとなる 5 つの表 示項目があります。レジストリのトップに位置するこれらの表示項目は「サブツリー」 と呼ばれています。「サブツリー」は「ルートキー」と呼ばれることもあり、両方の名 称を知っておくに越したことはありませんが、本書では以後「サブツリー」と呼ぶこと にします。 サブツリーは、レジストリに格納されているデータの大きな構成プロックとなってお り、格納されるデータがどのサブツリーに属しているかは重要な意味を持っています。 ディスク装置の構成にたとえるなら [ ドライプに相当するものです。 それぞれのサブツリー内部のデータ構成については後の章で詳しく取り上げますが、 ここでは簡単にどのような情報が格納されているかについてだけ示しておきます ( 右ペ ージ参照 ) 。またそれぞれのサブツリーは [ ] に示すような略称で表記されることが あるので、これも覚えておいた方がよいでしよう。 サブツリーはすべて [HKEY_] で始まる名前を持っていますが、この [H] は「ハ イプ (hive) 」すなわち「ミッパチの巣箱」の意味です。ハイブとはレジストリファイ ルを指しますが、ここではミッパチの個々の巣箱のようにまとまりのあるデータブロッ ク、という意味に解釈しておけばよいでしよう。 「サブツリー ( ルートキー ) 」はドライプに相当するもの
i 社 0W5 i 館 0 5 HKEY CURRENT USER [HKEY_CURRENT_USER] サブツリ - には「あなた」の環境情報が格納されている このサブツリーは、 [HKEY LJSERS] サブツリー内にあるログオンユーザのサブキ ーの工イリアスです。このキーの内部で行ったデータ変更は、そのまま旧 KEY_USERS] サブツリーへの変更でもあります。 ユーザの操作環境に直結した設定肩報が多く格納されているだけに、サブツリー内の キー名やエントリ名は比較的わかりやすいものになっています。ただし項目によっては 他のキーや他のサブツリー内のデータと関連してはじめて、 1 つの機能や動作が有効と なる場合もあります。 1 つのエントリの値を修正すれば、それだけで希望した結果が得 られるというケースの方が稀だと考えた方がよいでしよう。 このサブツリーへの変更操作は、最悪でも現在のユーザアカウントが使用できなくな るだけで、 Windows のシステムに致命的な影響を与えることはないと思われますが、 断言はできません。しかし他のサブツリーと比較すれば、多少は気軽にいじれる場所で はあります。 [AppEvents] には Windows やアプリケーションのイベントに応じて鳴らされるサ ウンドに関する情報が格納されています。「イベント」とはアプリケーションの起動や 終了、ウインドウ画面に対する操作など、 Windows とアプリケーションが認識した状 況の変化のことです。イベント内容の一部はアプリケーションによって異なっています。 [ConsoIe] にはコマンドプロンプトのカスタマイズ設定が、 [Environment] にはユ ーザ独自の ( そのユーザだけに適用される ) 環境変数の設定情報が、 [ldentities] には 複数のユーザを識別する特定のソフトウェアの情報 ( たとえば Ou 00k Express のメー ル設定など ) が、 [Keyboard Layout] にはキーボードのロケール設定 ( 地域と言語 ) が格納されています。また [Printer] にはこのユーザが使用できるローカルまたはリ モートプリンタの情報が、 [EUDC] にはユーザの定義文字に関する情報が格納されて います。 [HKEY_CURRENT_USER] 直下のサブキーについて 128
Wi 0 5 Wi 0 5 LLJLJLJ レジストリの工イリアス お力もなことになりました。対応するハイブを持っている CHKEY LOCAL MACHINE] [HKEY_USERS] のキーは良いとして、では残りのサブツリーはどうなっているの でしようか。それに [HKEY_LOCAL_MACHINE] の CHARDWARE] キーと [SAM] キーもハイプに対応していません。これらのレジストリキーはどのようなデータを格納 しているのでしようか。 CHKEY_LOCAL_MACHINE] の [HARDWARE] キーの場合は理由がはっきりして います。このレジストリキーに対応するハイプは存在しないのです。このキーのデータ は Windows によって起動するたびに作成され、シャットダウン時には破棄されます。 毎回、マシンのハードウェア構成を調査してその結果を格納しておくための一時的な保 管場所というわけです。 しかし他のサブツリーやキーについては別の事情があります。 ハイプに対応していないサブツリーには何が格納されているか 実は、ハイプに対応していないサブツリーやキーはハイブの内容を実際に読み取って いる [HKEY_LOCAL_MACHINE] や [HKEY_USERS] の特定部分のデータ内容を コピーしているのです。つまり複数のサブツリーやキーが重複したデータを表示してい ることになります。 [ コピー」というのは不正確で、正しくは「リンク」あるいは「マップ」しています。 たとえば [HKEY_USERS] の中の現在ログオン中のユーザのレジストリデータは [S- 1 -5-xx-xxxxxxxxxx ・・・・・・ ] というキーに格納されていますが、これとまったく同じデー タ内容が [HKEY CURRENT USER] サブツリーにも表示されます。そして一方の データ内容を変更すればただちに他方へ反映されます。つまりコピーして同じデータを 別の場所に格納しているのではなく、データの格納場所は 1 箇所で、 2 つのルートによ ってその場所へアクセスできるのです。 この場合、 [HKEY_CURRENT_USER] は [HKEY_USERS] の [S- 1-5-xx-xxxx xxxxxx ・・・・・・ ] キーへの「エイリアス ( 別名登録 ) 」であるという言い方をします。前者 がリンクする側、あるいはマップする側で、後者は「される側」です。 レジストリデータ内における工イリアスの関係は少し複雑ですが、右図に示しておき ます。 サブツリーの中には重複するものがある 104
第 (J & ィ 0 の 00 M k ツ日日 03 おÅ R 第トき池 00 0 30 の W 0a0 の第 6 6 6 8 8 8 0 0 0 2 2 2 4 4 4 6 6 6 8 8 8 2 2 2 4 4 4 6 6 6 8 8 8 ■レジストリのセキュリティ レジストリキーのアクセス権 セキュリティ領域はとくに厳重にアクセス制限されている ■レジストリハイプのフォールトトレランス レジストリハイプはコピーすることもできない レジストリへの変更は別ファイルに保存される ■レジストリで使用される長い長い数字列について GUID は世界でただ 1 つのシリアル番号 アプリケーションやデータは「クラス識別子」で区別される 0 ユーサなどに割り当てられるセキュリティ識別子 セキュリティ識別子はユーザやグループを識別する 破棄されたセキュリティ識別子はニ度と再利用されない 0 セキュリティポリシーについて セキュリティオプションを設定するためのツール・ 何が「ローカル」なのか ■レジストリエデイタの使用を制限する プログラムファイルのアクセス権を設定する グループボリシーを利用する ■ Windows xp / 2000 各バッケージにおけるレジストリの違い バッケージによるレジストリの違い レジストリ操作環境の違い 第 3 章レジストリの構成と主要なキー ■レジストリのサブツリーとハイプ ハイブとサブツリーの対応関係 ハイプに対応しているのは [HKEY-LOCAL-MACHINE] [HKEY-USERS] だけ ■レジストリの工イリアス ハイプに対応していないサブツリーには何が格納されているか サブツリーの中には重複するものがある AHKEY_LOCAL_MACHINE レジストリの中核をなすもっとも重要なサブツリー [HKEY_LOCAL_MACHINE] には 5 個のサブキーがある AHKEY_LOCAL MACHINEYHARDWARE [HA 日 DWARE] キーはハイブではない [HARDWARE] キーに格納される情報
第 2 章レジストリ操作の基礎知識◆レジストリ各部の名称と意味「サブツリー」 レジストリエデイタに表示された 5 大サブツリー 左側ペイン ( ウインドウ ) の 5 つの項目は「サブツリー」または「ルートキー」と呼ばれています。 レジストリを構成する重要なデータブロックで、どのサブツリーに属するかによってデータの役 割や意味が違ってきます ファイル ( 日偏集 ( 印表示 ) お気に入り ( 合 ) ヘルプ旧 ) 三マイコンビュータ 国」 HKEY_OLASSES_ROOT 国こ」 HKEY-CLIRRENT_IJSER ーコ HKEY_LOOAL_MAOHINE 王 4 」 HKEY-IJSERS 国一」 HKEY-CLIRRENT_OONFIG : レラストリエデイタ 名前 マイコンビュータ 5 つのメイン・サブツリー サブツリー名 略称 主に格納されている情報 [HKCR] ファイルタイプに関連した情報 HKEY CLASSES ROOT [HKCU] ログオン中のユーザプロファイル情報 HKEY CURRENT USER [HKLM] Windows システムに関するほばすべての情報 HKEY LOCAL MACHINE [HKU] 登録されているユーザプロファイル情報 HKEY USERS CHKCC] 現在動作中の Windows システムに関する情報 HKEY CURRENT CONFIG OREGEDIT. EXE のショートカットを作成する レジストリエデ操作②③の画面です イタを頻繁に起動す ファイル ( 日編集 ( 印表示お気に入り ( 合 ) ツールヘルプ ( 日 ) る場合はデスクトッ プ画面 ( またはスタ ア 1 ( 0 ) 「 フォルダ x 名前、、 ートメニュー ) に へコ n 、 435 インチ FD い ) +ODB)INST.INI ト・ XP-S 、 'SI : ) REGEDIT. EXE のシ り OEWABLxtxt 、 : 」 Dæuments and 川 s ・こ」 Prc«ram Files ZRE OCS.OLD こコ System VO ⅳ″虍ト f m 絖ー ョートカットを作成 「 tlog こ ) SystemSafe ロ LgLlTxt 三一」聞 NDI ) 物 S してください。デス r. を叩。 FT. をれ A Patch クトップにショート 説明 : g Ⅳ ditor 会社名 Microsoft p 加フルバージョン 512 を〕 00 作成い 31 KB カットを作成するに 右ドラッグで は、以下の操作を行 移動します います。 ①工クスプローラの左側ペインで CWINDOWS] フォルダ (Windows 2000 では [WINNT] フォルダ ) を選択します。 ②右側ペインに表示されている日 EGED 工 EXE を右ドラッグしてデスクトップ上で指を 離します。 ③ショートカットメニューから [ ショートカットをここに作成 ] を実行します。 、 WINDOWS 笥岡区 サイズ種 3 KB テキストドキュメント 5 KB 構成設定 2 KB テキストドキュメント 131 KB アプ丿ケーション 8 KB OLD ファイル 2 KB テキストドキュメント 32 KB テキストドキュメント 3 KB テキストドキュメント 1 5 ー KR TMP つマイル ツマイコンピュータ ドラッグを離 した瞬間、表 示されます ー eeedit 色ィを ここにコビー 0 ここに格 ( キャンセル ロし、 0 化 63
ー 0 を X 0 0 6 2 1 1 1 0 [donltload] キー [DrWatson] キー DWO RD 値 [Accessibility] キー 130 [Account] キー 110 [Accounts] キー [ACPI] キー 108 [Active Desktop ] キー 134 Administrators ( 管理者グループ ) 196 、 200 [AeDebug] キー 120 [Aliases] キー 110 [AII Users] キー 56 、 134 [App Events] キー 128 [App paths] キー 118 [Appearance] キー 130 [Applets] キー 134 ASR ( 緊急時における自動回復フロッピ ) 148 、 164 、 166 AUTORUN ・ 238 0 [edit] キー [Enum] キー [Environment] キー ERD ( 緊急時における修復ディスク ) [EUDC] キー [Explorer] キー 138 124 128 ・ 164 、 166 128 118 、 134 146 146 0 160 110 . bkf [Builtin] キー ・ 110 [Hardware ProfiIes] キー ・ 124 238 [HARDWARE] キー 104 、 106 、 108 126 [HKEY_ CLASSES ROOT] サブツリー 102 106 、 136 、 138 106 、 114 [HKEY_CURRENT_CONFIG] サブツリー 114 106 136 [HKEY CURRENT_USER] サブツリー 130 104 、 126 、 128 138 [HKEY_CURRENT USERYControl panel] キー ・ 120 130 120 [HKEY_ CURRENT USERYSoftware] キー 132 128 [HKEY CURRENT USERYSoftwareYClasses] 118 、 130 キー 136 124 [HKEY_CURRENT USERYSoftwareVMicrosoft 226 、 230 YWindows] キー 134 226 、 230 [HKEY_CURRENT_USERVSOFTWARE] キー ・ 118 、 120 、 134 122 、 124 [HKEY_LOCAL_MACHINE] サブツリー 86 、 102 、 104 、 106 、 116 、 132 、 134 、 188 、 192 、 196 [HKEY LOCAL_MACHINEYHARDWARE] キー 200 108 [HKEY_LOCAL_MACHINEVSAM] キー 126 1 10 [HKEY_LOCAL_MACHINEYSECURITY] キー ・ 232 [HKEY_LOCAL_MACHINEVSOFTWARE] キー 56 、 234 108 114 [HKEY_LOCAL_MACHINEVSOFTWAREV ・ 130 CIasses] キー 108 136 44 [HKEY_LOCAL_MACHINEVSOFTWARE YMicrosoft] キー 56 、 126 1 16 244 [ H KEY_LOCAL_MACHI N EYSO FTWAR EV MicrosoftYWindows] キー 110 118 CD - ROM の自動実行制御 [_Class] キー [ ・・・・・・ Classes ] キー [Classes] キー [CIients] キー [CLSID] キー [Colors] キー [command] キー [Compatibility] キー [Compatibility32] キー Config フォルダ [console] キー [ControI panel] キー [Control] キー [Ctrl + Alt + DeIete] ・ [ctrl + AIt + DeIete] を有効にする [Current Version] キー [CurrentControISet] キー DAC への書き込み [. DEFAULT] キー . Default DefauIt User [DESCRIPTION] キー [Desktop] キー [DEVICEMAP] キー D MA Documents and Settings DomAdmin [Domains] キー 268
観レジストリハイプを i “ 0 5 LLJLJLJ ハイプのロードの条件 本節と次節で Windows XP のレジストリエデイタによる [ ハイプの読み込み ] と [ ハイブのアンロード ] の機能について説明します。他の Windows の REGEDIT にこの 機能はありません。 Windows 2000 では REGEDT82 の [ レジストリ ] メニューで同 じ操作を行うことができます。 すでに説明したようにレジストリハイプは [HKEY_LOCAL_MACHINE] と [HKEY USERS] の 2 つのサブツリーにだけ対応しています。したがって、レジスト リエデイタでハイブのロード ( 読み込み ) の操作が可能となるのは [HKEY_LOCAL_ MACHINE] あるいは [HKEY_USERS] いずれかのサブツリーが選択されていると きだけです。これ以外のレジストリキーが選択されているときは [ 編集 ] メニューの該 当項目が淡色表示されていてこの機能を実行することができません。 ハイブのロードは、先のインボートとは異なり、既存のレジストリを上書きしません。 [HKEY_LOCAL_MACHINE] あるいは [HKEY_IJSERS] サブツリーの下位の独立 したレジストリキーの中に読み込まれ、両者が結合されることはありません。 ハイブのロードを行うためには、読み込むべきハイブ ( レジストリファイル ) が必要 になります。 Windows が管理しているシステムハイブ (HKEY_LOCAL_MACHINE のハイブ ) は起動時にすべて読み込まれているため、これらのハイブをニ重にロードす ることはできません。しかし何らかの方法によってこれらのハイブを別の場所にコピー している場合はそのファイルを別のキー名を付けてロードすることができます。 ユーザプロファイルのハイブでは、 Defau はユーザと現在ログオンしているユーザの ハイプはすでに読み込まれています。ただし現在ログオンしていないユーザのハイプは 読み込まれていません。したがって現在ログオンしていないユーザのハイブを任意の名 前を付けたレジストリキーの中にロードすることが可能です。 右ページに示す操作手順では現在ログオンしていない他のユーザのハイブを読み込む 操作を紹介します。 ハイプのニ重ロードはできない 192
第 2 章レジストリ操作の基礎知識◆レジストリ各部の名称と意味「レジストリキー」一、第一 各サブツリーの中にはレジストリキーが格納されている レジストリエデイタで、サブツリーを展開して中のレジ ファイル ( E ) 集 ( 印表示お知こ入り (A) ヘルプ ( 印ストリキーを表示した画面です。階層はかなり深くなる ことがあります 、一」 HKEY-OLASSES_R@T 三一」 HKEY_CURRENT_USER ーコ AppEvents 国一コ EventLabels 三一コ Schemes 日ロ A 叩 s 」 . Default 三一」 Default 朝 0 re 猷 朝 Default し」 APPGPFault ・こ」 CCSeIect 田一」 Close 田一」 0 頑℃引 e Ⅳ A m 国こ」 DeviceFail 国」 LOW 日 t 針 YA 唇 " れ ー」 Mai 旧 eep 国一」 Maximize 国一」ル 800Em d 国」 MenuPopup 」 Minimize 、レラストリエデイタ マイコ .. ゼュータ マイコンビュータ この画面では [SOFTWAWE] キーが 2 つ見えますが、サブッ ファイルの集 ( 印表示 ( お気に入り (A) ヘルリーが異なっているので許されます ( 大文字・小文字は区別さ れません ) 。同じサブツリーやキーの中の同じ階層レベルで同 ・ [ 」 HKEY-CLASSES_R03T じ名前のレジストリキーを登録することはできません —ー」 HKEY_CLIRRENT 」 JSER 4 」 AppEvents 」 console 」 0 p 部回 ー」 Envronment 一」 EIJDC ↓コ ldentities 、コ Keyboard LaY01 靆 ・匚」 pr inters こ」 se i n formatlon ・ Software Program s ーコ Volatile Errnronment こ」 Wndows 3.1 M Ⅷ status 三こ」 HKEY_LWAL_MACHINE ・こ」 HARDWARE ・コ SAM ・「 - SOFTWARE 一」 HKEY_USERS 国こ」 HKEY_CLIRRENT_CONFG マイコンピュータ しラストリエデイタ マイコ .. ゼュータ 同じ名前のサブキーもある ロ解ロ深 0 るロ礎ロ識 「レジストリキー」、「キー」、「サブキー」 本書では文脈の中で「レジストリキー」「キー」「サブキー」という語を使用して いますが、これらはすべて同じ意味で「レジストリキー」を指しています。「サブ キー」は話題となっているレジストリキーの上位に位置するキーを指す場合に使 用しています。本来、すべてのレジストリキーはサブツリーの下位に位置するサ ブキーですが、すべてのキーをサブキーと呼ぶのでは実も蓋もありません。「フォ ルダ」と「サプフォルダ」の使い分けと同じだと考えてください。
HKEY USERS Windows LIJLJLJ [HKEY_USERS] サブツリーに作成されるレジストリキー [HKEY_USERS] サブツリーにはユーザハイブから読み込まれたデータがユーザこ とに格納されます。既定では、ユーザがログオンしていないときにシステムが使用する [. DEFAULT] キーと現在ログオンしているユーサ ( ここでは [ S - 1 -5-21 ] となって いる ) のサブキーが作成されています。前者はログオン画面やようこそ画面において適 用されるユーザ情報で、後者は [HKEY CURRENT USER] サブツリーのリンク元 です。各ユーザキーの内部に格納されている情報については [HKEY_CURRENT_USER] の項で説明します。 なお Windows XP においては、この 2 個のユーザキーの他に、システムが作成した 3 個のユーザキーも読み込まれています。このうち CS-I -5-19 ] は [LocaIService] の、 [S-I -5-20 ] は [NetworkService] というアカウントのもので、そのプロファ イルフォルダは [Documents and Settings] フォルダに作成されています。 [S-I -5-xx] はユーザに割り当てられた一連の番号で、使用される番号は Windows XP / 2000 で共通しているようです。 [S-I -5-21 ] 以降の値はユーザによって登録さ れたアカウントです。 ユーザを指すキーの中に [S- 1 -5-21 -xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxx-xxxx] と いう長い数字列が付けられているものがあり、同じ名前で末尾に [_CIass] と付いて いるのもあります。これは現在ログオンしているユーザのサブキーです。長い数字列は セキュリティ識別子 (SID) で、ユーザプロファイルが作成されるたびに一意の数字列が 割り当てられます。末尾に [_Class] と付いているサブキーは、このユーザのクラス情 報参照用で、通常は内部にエントリを持っていません。 セキュリティ識別子は重複しないことが前提となっており、たとえば [szsz] という 既存のユーザアカウントを削除して、再び同名の [szsz] を登録しても、システムはこの 2 つのアカウントを同一ものものとは見なしません。当然、セキュリティ識別子も異なり、 前の [szsz] が作成したフォルダやファイルに後の [szsz] はアクセスできない可能性 があります ( 後の szsz が管理者ユーザであればアクセスできます ) 。 ログオンユーサとセキュリティ識別子 (SID) 126