可以使用 truecrypt 加密“C:\Users\user1\AppData”吗?

可以使用 truecrypt 加密“C:\Users\user1\AppData”吗?

我正在寻找一种使用 truecrypt 加密某些配置文件文件夹的方法。加密系统驱动器不是一个选项。

如何使用C:\Users\user1\AppDatatruecrypt 加密?

答案1

这是可能的,我自己也在这么做。这有点像 hack,但效果出奇地好。此方法基于 Windows 允许重定向 AppData 文件夹这一事实。

我的回答的简短版本:

  1. 以其他用户身份登录
  2. 将第一个用户的 AppData 文件夹的内容移动到 TrueCrypt 卷
  3. 删除 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 命令)以将它们链接到正确的路径。

相关内容