Windows レジストリ ハイブが空に見えるのはなぜですか?

Windows レジストリ ハイブが空に見えるのはなぜですか?

Windows 10 マシンにアクセスし"C:\Windows\System32\config"、レジストリ ハイブ ファイルを開こうとしました。

SOFTWAREたとえば、 は、エクスプローラーで報告されるサイズがちょうど 128 MB ですが、Visual Studio Code で開くと空として表示されます。メモ帳では、「別のプロセスで使用されている」ため、開くことができません。他のファイル ( SYSTEMSECURITYなど) でも同じ結果になります。

Windows は私が何か愚かなことをするのを防ごうとしているのでしょうか? これらのファイルは (レジストリをホストする以外に) 何らかの特別な意味があるのでしょうか?

答え1

Visual Studio Code はファイルを開けないという概念を理解していないため、空として表示されます。実際には空ではなく、vscode は文字通り空かどうかを認識できないだけです。

Windows には、「排他的オープン」(別名「共有モード」、他の場所では「強制ロック」とも呼ばれる) という概念があります。これは、データベース エンジンがデータを管理しているときに、別のプログラムが同時にデータを書き込むことを防ぐために、データベース ソフトウェアでよく使用されます。2 つのハンドラーが同時に書き込みを行おうとすると、データベース全体が破損する可能性があります。同じことがファイル システムにも当てはまります。Windows では、ファイル システムとしてマウントされている raw ディスク デバイスには実際にはアクセスできません。

(とはいえ、LMDB など、同時アクセス用に特別に作成されたデータベース形式。

しかし主要なWindows レジストリが排他的オープンを使用する理由は、セキュリティの強化のためです。各レジストリ キーには、ファイルやフォルダーと同様に、一連のアクセス許可 (DACL/SACL) を関連付けることができます。レジストリ ハイブ (特にシステム ハイブまたはセキュリティ ハイブ) を直接開くことができれば、アクセス許可によって保護されているはずのデータを簡単に読み取ることができます。

関連情報