![為什麼 Windows 登錄機碼配置單元顯示為空?](https://rvso.com/image/1592541/%E7%82%BA%E4%BB%80%E9%BA%BC%20Windows%20%E7%99%BB%E9%8C%84%E6%A9%9F%E7%A2%BC%E9%85%8D%E7%BD%AE%E5%96%AE%E5%85%83%E9%A1%AF%E7%A4%BA%E7%82%BA%E7%A9%BA%EF%BC%9F.png)
我進入"C:\Windows\System32\config"
我的 Windows 10 計算機,並嘗試開啟註冊表設定單元檔案。
SOFTWARE
例如,Explorer 報告的大小剛好是 128 MB,但是當使用 Visual Studio Code 開啟它時,它顯示為空。記事本拒絕打開它,因為它「被另一個進程使用」。對於其他文件( 、 等),我得到相同的SYSTEM
結果SECURITY
。
Windows 是否試圖阻止我做一些愚蠢的事情?這些文件在某些方面是否特殊(除了託管註冊表之外)?
答案1
它們顯示為空,因為 Visual Studio Code 不理解無法開啟檔案的概念。它們實際上並不是空的,vscode 只是無法知道它們是否為空。
Windows 具有“獨佔開放”(又稱“共享模式”,其他地方也稱為“強制鎖定”)的概念。資料庫軟體通常使用它來防止另一個程式在資料庫引擎管理資料的同時寫入資料;如果兩個處理程序嘗試同時寫入,它們最終可能會損壞整個資料庫。這同樣適用於檔案系統 – 如果原始磁碟裝置作為檔案系統安裝,Windows 實際上不會讓您存取它。
(也就是說,有是專為同時存取而設計的資料庫格式,例如 LMDB。
但是基本的Windows 登錄使用獨佔開放的原因是為了安全執行。每個登錄項目都可以附加一組權限 (DACL/SACL),就像檔案或資料夾一樣。如果您可以直接開啟註冊表組態單元(尤其是系統或安全性設定單元),則可以簡單地讀取本應透過權限保護的資料。