为什么 Vista 64 位将我的打印文件隐藏在一个特殊的隐藏文件夹中?

为什么 Vista 64 位将我的打印文件隐藏在一个特殊的隐藏文件夹中?

我在我的 PostScript 驱动程序中勾选了打印到文件选项,无论我告诉文件去哪里,它最终都会进入一个非常特殊的文件夹。

我花了好几天才终于找到 Vista 隐藏我的 PostScript 文件的位置。它将它们存储在某个隐藏的虚拟化路径中:

C:\Users\我的用户名\AppData\Local\Microsoft\Windows\Temporary Internet Files\Virtualized\C\Users\我的用户名\temp

更有趣的是,我取消选中了 Virtualized 文件夹的隐藏属性,但不行,Vista 坚持将其隐藏。当然,隐藏位已关闭,但没有文件夹显示在 Explorer 或搜索中。我之所以发现这一点,只是因为其他人在博客上提到了这个特殊的地方。

有没有办法让打印机驱动程序将文件发送到实际文件夹?

答案1

该 postscript 驱动程序正在尝试将文件放置在:

c:\Users\Jerry\temp

笔记:我不知道为什么它试图将其放在你的临时文件夹中 - 这是打印驱动程序的错误。

但进行打印的过程已被标记为完整性级别:低。这意味着该进程在计算机上可以执行的操作非常有限。

这些限制之一是只允许写入设置为允许的文件系统位置完整性级别:低写道(IE c:\Users\Jerry\temp不允许低完整性写入)。Windows Vista/7 的默认安装仅标记两个文件夹为低强制完整性级别

  • %LOCALAPPDATA%\LocalLow
  • %LOCALAPPDATA%\Microsoft\Windows\Temporary Internet Files\Low

这是仅有的两个地方,低的“完整进程被允许写入。

如果某个进程在尝试保存文件时出现“访问被拒绝”的情况:Windows 将默默地再次尝试保存,但这次会重定向到允许写入的位置。(笔记:这是针对之前编写的应用程序的兼容性破解低完整性存在)


如果你尝试写入需要行政人员访问,但你只是一个标准用户。例如,如果我尝试将文件保存到:

C:\Windows\test.txt

写入将失败,并且 Windows 将默默地再次尝试保存,但这次将:

%LOCALAPPDATA%\Local\VirtualStore\Windows\test.txt

稍后,如果您尝试打开

C:\Windows\text.txt

Windows 将静默地重定向到虚拟商店

这样做是为了让应用程序误以为所有用户都是管理员,当用户真的是标准用户

笔记:在 Windows XP 上,当这些应用程序无法保存任意位置时,它们会失败,而且通常非常糟糕。在 Windows Vista 中,微软添加了这个庞大的兼容性基础架构,以允许这些流氓应用程序以标准用户身份运行。


下一个问题:为什么有些文件夹在取消隐藏时仍被隐藏。

文件夹包含只读&系统属性被理解为特别的 系统文件夹。为了看到它们,你必须改变你的Windows资源管理器偏好设置,然后关闭:

  • 隐藏受保护的操作系统文件(推荐)

此外,您的Temporary Internet Files文件夹被标记为,所以你也必须转身离开选项:

  • 不显示隐藏文件和文件夹

你可能想知道 Internet Explorer 如何下载文件;当它不允许写入除强制完整性级别:低地点。

答案是,一旦文件被下载,运行标签与 Internet Explorer 通信控制主机并要求它移动将文件复制到您请求的位置。IE 控制器进程使用您的 (标准用户)特权 - 虽然每个选项卡都在一个低完整性流程


我认为如果你打印一些东西记事本, 或者单词或其他一些“常规的“完整性级别进程,保存将正常工作......到临时文件夹。

我很惊讶它没有询问您要将文件保存在哪里。

答案2

为什么它会进入“临时 Internet 文件”?您的驱动程序是否恰好在 Internet Explorer 上下文中运行?出于安全原因,IE 虚拟化了大量文件访问,以防止将代码写入受保护的位置。

答案3

您是否尝试在注册表中搜索该路径或该路径的最后部分(例如 C\Users\MyUserName\temp)?如果找到它,您可能能够更改设置,将其指向其他位置。不确定您是否可以阻止它使用虚拟目录。

相关内容