Windows 10 在文件资源管理器和 Internet Explorer 文件选择器中不显示相同的文件夹

Windows 10 在文件资源管理器和 Internet Explorer 文件选择器中不显示相同的文件夹

我发现用户计算机上出现了一些奇怪的行为。当我尝试在 Internet Explorer 文件选择器中选择文件时,我看到的文件夹与 Windows 中看到的不一样。

例如,如果我导航到C:\Users\username\Documents\,子文件夹会有所不同。如果我将路径从 Windows 资源管理器复制到文件选择器对话框,它会显示正确的文件,但如果我转到C:\Users\username\Documents\,它又会显示错误的文件。

这是怎么发生的?我该如何解决?

经过一些测试,此行为仅在 Silverlight 应用程序中的文件上传时发生。碰巧的是,那里显示的文件夹是:

C:\Users\username\AppData\Local\Microsoft\Windows\INetCache\Virtualized\C\Users\username\Documents\

答案1

正如评论中提到的,该文件夹已虚拟化。当尝试查看 Silverlight 插件时,实际上看到的是完全不同的地方。

首先,回顾一下历史

在从 Windows XP 过渡到 Vista 的过程中,微软认真对待以标准用户身份(而不是管理员)运行的用户。遗憾的是,应用程序开发人员并没有认真对待,大量程序写入“系统”位置,如C:\WindowsHKEY_LOCAL_MACHINE。为了让这些应用程序继续运行,微软添加了一项名为重定向或者UAC 虚拟化。当以标准用户身份运行的程序尝试写入仅限管理员的位置时,写入成功,但数据实际上存储在每个用户的位置,具体来说:

\Users\<username>\AppData\Local\VirtualStore

但这和这个有什么关系呢?

Internet Explorer 的保护模式导致 IE 及其插件以比标准用户权限更低的方式运行。XP → Vista 的过渡引入了强制性级别. 每一个可保护的对象都有一个强制性级别:低、中、高或系统。普通用户/程序编写的内容具有中等强制性级别。

即使是不受信任的程序也可以写入的内容具有较低的强制级别,这就是保护模式 IE 运行的方式。因此,它无法写入您的任何文档或将恶意内容放入您的用户文件夹中。文件系统会将这些插件重定向到:

\Users\<username>\AppData\Local\Microsoft\Windows\INetCache\Virtualized

请注意,即使自主访问控制列表允许访问,强制完整性级别也可能拒绝访问。如果您不了解强制访问控制,这可能会造成一些困惑。

如何检查文件或文件夹的强制级别?

使用icacls实用程序,如icacls file.txticacls \path\to\folder。当我在文件夹上运行该程序时Virtualized,我得到:

NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
MYCOMP\Ben:(I)(OI)(CI)(F)
Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

如您所见,该文件夹的强制级别较低。在我的C:\驱动器上,我得到:

NT AUTHORITY\Authenticated Users:(S,AD)
NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(M)
NT AUTHORITY\SYSTEM:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
BUILTIN\Users:(OI)(CI)(RX)
Mandatory Label\High Mandatory Level:(OI)(NP)(IO)(NW)

我的驱动器的根目录具有较高的强制级别。大多数对象不会显示该行;当该行不存在时,Windows 会假定该对象具有中等强制级别。

我如何停止重定向?

在所有地方禁用保护模式可以实现这一点,但这不利于安全。如果您信任为 Silverlight 应用程序提供服务的站点,则可以将其添加到已关闭保护模式的 Internet 区域。为此,请打开 Internet 选项对话框,切换到安全选项卡,选择可信任的网站区域,然后单击站点按钮。

相关内容