![Windows レジストリ ハイブが空に見えるのはなぜですか?](https://rvso.com/image/1592541/Windows%20%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA%20%E3%83%8F%E3%82%A4%E3%83%96%E3%81%8C%E7%A9%BA%E3%81%AB%E8%A6%8B%E3%81%88%E3%82%8B%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%9C%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
Windows 10 マシンにアクセスし"C:\Windows\System32\config"
、レジストリ ハイブ ファイルを開こうとしました。
SOFTWARE
たとえば、 は、エクスプローラーで報告されるサイズがちょうど 128 MB ですが、Visual Studio Code で開くと空として表示されます。メモ帳では、「別のプロセスで使用されている」ため、開くことができません。他のファイル ( SYSTEM
、SECURITY
など) でも同じ結果になります。
Windows は私が何か愚かなことをするのを防ごうとしているのでしょうか? これらのファイルは (レジストリをホストする以外に) 何らかの特別な意味があるのでしょうか?
答え1
Visual Studio Code はファイルを開けないという概念を理解していないため、空として表示されます。実際には空ではなく、vscode は文字通り空かどうかを認識できないだけです。
Windows には、「排他的オープン」(別名「共有モード」、他の場所では「強制ロック」とも呼ばれる) という概念があります。これは、データベース エンジンがデータを管理しているときに、別のプログラムが同時にデータを書き込むことを防ぐために、データベース ソフトウェアでよく使用されます。2 つのハンドラーが同時に書き込みを行おうとすると、データベース全体が破損する可能性があります。同じことがファイル システムにも当てはまります。Windows では、ファイル システムとしてマウントされている raw ディスク デバイスには実際にはアクセスできません。
(とはいえ、はLMDB など、同時アクセス用に特別に作成されたデータベース形式。
しかし主要なWindows レジストリが排他的オープンを使用する理由は、セキュリティの強化のためです。各レジストリ キーには、ファイルやフォルダーと同様に、一連のアクセス許可 (DACL/SACL) を関連付けることができます。レジストリ ハイブ (特にシステム ハイブまたはセキュリティ ハイブ) を直接開くことができれば、アクセス許可によって保護されているはずのデータを簡単に読み取ることができます。