通過Windows註冊表來實現開機時檔案替換

來源:互聯網
上載者:User
1. 為什麼需要通過註冊表來實現開機時檔案替換?
有一些檔案,被系統的一些服務所獨佔,我們在熱備份與熱恢複系統的時候,沒有辦法直接替換掉。
也有一些程式以獨佔的方式(exclusive access)開啟某個檔案,在這個程式退出之前,按常規的方法,我們是不能替換掉這個檔案。
這些情況下,我們可以通過註冊表 (Windows Registry) 記錄下需要替換的檔案等相關資訊,在下一次開機、應用程式啟動之前進行替換掉。
2. 具體的實現方法
記得在進行以下步驟之前,先備份一下你的註冊表。
下面就以用放在目錄 C:\Temp 下的 Win32k.sys 檔案,替換系統目錄 %SystemRoot%\System32 下的 Win32k.sys 檔案為例,詳細介紹一下利用註冊表來實現開機替換檔案的操作。你可以通過這種方法來替換掉你 Windows 系統裡的任何檔案,當然,你的 Windows 應該是要能啟動的。
  1. 啟動登錄編輯程式 (regedit.exe);
  2. 按下面的路徑,在註冊表裡找到相關的key:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
  3. 在 Session Manager 這個註冊表目錄下,通過以下方式建立一個值 (value):
    值名稱(Value name):         PendingFileRenameOperations
    類型(Data type):         REG_MULTI_SZ(多字串值)
    值資料(Value data):         \??\c:\temp\win32k.sys         !\??\c:\winnt\system32\win32k.sys
    這裡要特別注意,一定要分兩行來填寫值(填完後在註冊表裡會顯示成一行),並且那個”!”必須放在第二行的開頭。
    這種表達方式是用前面路徑的檔案來代替後面路徑的檔案。
  4. 退出登錄編輯程式;
  5. 重新啟動系統。
重啟 Windows 系統後,如果第二個檔案存在,則會把第一個檔案的內容替換到第二個檔案裡,第二個檔案的檔案名稱保持不變,並且刪除第一個檔案;如果系統裡原來就沒有對應的第二個檔案,則系統會自動建立一個和第二個檔案名稱一模一樣的檔案,再把第一個檔案裡的內容拷貝進去。替換動作完成後,系統會自動清除註冊表裡添加的 PendingFileRenameOperations 值。
如果是要批量替換多個檔案,則只需要按上面的值資料形式,在註冊表變數值資料裡添加要替換的多個檔案資訊即可,例如:
\??\c:\test2\test2.txt !\??\c:\test1\test1.txt \??\c:\test2\test22.txt !\??\c:\test1\test11.txt

如果你的機器用上面的辦法替換檔案出錯,則重點檢查上面第三步的運算式是否有誤。
除了往註冊表裡塞東西這個方法以外,你還可以使用Windows內建的mv.exe工具,或是下載與使用Inuse.exe工具,這些工具的詳細使用方法,可以看協助說明。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.