我遇到了一种奇怪的情况,当以管理员身份运行程序和以非特权用户身份运行程序时,我会“看到”同一文件的不同版本。
该文件是 sqlite 的 db3 文件,位于“program files (x86)”内的文件夹中。
当以管理员权限运行程序“sqlitestudio”然后打开程序内的文件时,我看到一些值与我以非管理员权限运行程序时不同!
这真的很奇怪,因为我在非特权模式下运行时看到的值是合法的,并且是在旧版本的文件中写入的。
有人知道 @!# 是什么原因导致的吗?
提前致谢,Eitan
答案1
查看AppData\Local\VirtualStore
运行该程序的用户的个人资料。
显然,它是通过其执行的操作(例如写入程序文件)以兼容模式启动的,然后文件夹虚拟化启动并将所有写入的文件移动到您的用户配置文件。
以管理员身份运行时,将不会使用兼容性设置,因此您看到的是真正位于磁盘上的文件。
请注意,该文件夹可能被隐藏,因此请完整输入该文件夹或启用显示隐藏文件夹。
您可以使用兼容性管理员手动更改设置(例如仅重定向某些文件,或将某些文件重定向到每个人都可写入的 C:\ProgramData,并将其余文件重定向到用户配置文件,因为它包含每个用户的设置)。