
我正在尋找一種使用 truecrypt 加密某些設定檔資料夾的方法。加密系統磁碟機不是一個選項。
如何C:\Users\user1\AppData
使用 truecrypt 進行加密?
答案1
有可能,我自己也在做。這有點像駭客,但效果卻出奇的好。此方法基於 Windows 允許重定向 AppData 資料夾的事實。
我的回答的簡短版本:
- 以另一個使用者登入
- 將第一個使用者的 AppData 資料夾的內容移至 TrueCrypt 卷
- 刪除 AppData 資料夾並將其替換為指向 TrueCrypt 磁碟區的 NTFS 連線(資料夾重新導向)
細節:
首先,以具有管理員權限的另一個使用者登入,因為我們無法從仍登入的使用者複製 AppData。建立一個基於檔案的 TrueCrypt 容器並安裝它。在Windows資源管理器中開啟使用者的設定檔路徑並確認取得存取權限的請求,這對於下一步很重要。將 AppData 資料夾複製到 TrueCrypt 容器。為了正確複製所有系統檔案和安全性設置,請勿使用 Windows 資源管理器,而應在提升的命令提示字元中使用 robocopy 等工具:
robocopy C:\Users\user\AppData x: /E /COPYALL /XJ /W:0 /R:0
其中 x: 是您安裝的 TrueCrypt 磁碟區。這將確保所有 NTFS 元資料也被複製。不要省略 /XJ 開關,否則您將陷入無限循環。
現在,您將有兩個選項來實際變更 Windows 使用的 AppData 的路徑。第一種方法是完全刪除舊的 AppData 資料夾並將其替換為NTFS連接。這基本上是一種替換快捷方式,允許透明地將一個資料夾路徑重新導向到另一個位置。若要刪除舊的 AppData 資料夾並建立連接,請開啟命令提示字元(仍使用第二個使用者)並鍵入:
rmdir /s c:\users\user1\AppData
mklink /j c:\users\user1\AppData x:\AppData
其中 x: 是您安裝的 TrueCrypt 容器。如果您在刪除 AppData 資料夾時遇到問題,因為您收到一則訊息表示該資料夾不為空,請嘗試以下操作:如何刪除Windows中檔案名稱太長的檔案?(第一個答案)
第二個選項是透過變更儲存在登錄中的 AppData 的路徑來進行軟重定向。請注意,這不會刪除舊的 AppData 資料夾,並且舊的或製作不良的軟體仍可能嘗試寫入舊位置,因為它可能使用硬編碼路徑並且無法從註冊表中正確讀取路徑。但我發現這種情況非常罕見,而且這種方法幾乎同樣有效。操作方法如下:
使用第一個使用者帳戶再次登錄,開啟 regedit 並導航至:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
然後更改值「AppData」和「Local AppData」以指向您的TrueCrypt 卷,例如X:\AppData\Roaming 和X:\AppData\Local。如果您也想加密它們,也可以變更此登錄機碼中的所有其他 shell 資料夾路徑,例如「桌面」和「下載」資料夾。然後登出並再次登錄,就完成了。
確保一切正常後,您可以再次以第二個使用者身分登入並刪除舊 AppData 資料夾的內容(不是資料夾本身,這會導致問題)。
使用這兩種方法中的任何一種,從現在開始,您顯然必須在每次登入後立即安裝 TrueCrypt 容器,否則如果程式找不到 AppData 資料夾,程式將無法正常運作。安裝容器後,您還必須重新啟動 explorer.exe,因為如果不事先存取 AppData 資料夾,Windows 就無法正確載入工作列和開始功能表。以下是我如何使用登入時自動執行的批次檔來自動化此流程:
taskkill /f /im explorer.exe
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "c:\users\user\AppData.tc" /ld /q
start "" explorer
除了奇怪的登入過程之外,一切都按預期進行。
為了與舊程式相容,您還必須修改使用者資料夾根目錄中的舊版特殊資料夾重新導向。打開命令提示符,導航到您的用戶根資料夾並鍵入
dir /a
尋找 JUNCTION 條目。最重要的是“應用程式資料”和“本地設定”。它們仍然指向您的舊 AppData 資料夾。刪除它們(del 命令)並再次建立它們(mklink /j 命令)以將它們連結到正確的路徑。