在 Windows 资源管理器中选择“继续”进行文件夹访问时,用户帐户将添加到该文件夹的 ACL

本文提供了在选择“ 继续 ”以访问你没有读取权限的文件系统文件夹时出现的问题的解决方案。

适用于:Windows 10 - 所有版本,Windows Server 2012 R2
原始 KB 编号: 950934

简介

本文介绍 Windows 资源管理器会提示你选择“ 继续 ”,以获取对你没有读取权限的文件系统文件夹的访问权限的方案。 它还介绍了避免此行为的特定方面的解决方法。 Windows Vista 及更高版本的 Windows 以及 Windows Server 2008 及更高版本的 Windows Server 中会出现此问题。 Windows 资源管理器在Windows 8及更高版本中称为文件资源管理器。

更多信息

假设已启用用户帐户控制 (UAC) ,并且你使用 Windows 资源管理器访问你没有读取权限的文件夹。 此外,文件夹不会同时由 Hidden 和 System 属性标记。 在这种情况下,Windows 资源管理器将显示一个对话框,提示你显示以下消息:

你当前没有访问此文件夹的权限。 单击“继续”可永久访问此文件夹。

注意

在 Windows Vista 和 Windows Server 2008 中,第二个句子不包括永久的 单词:它只显示 单击“继续”以获取对此文件夹的访问权限。

然后,可以选择“ 继续 ”或“ 取消”。 (默认选择“继续”。) 如果选择“ 继续”,UAC 将尝试代表你获取管理权限。 根据控制 UAC 提升提示行为的 UAC 安全设置,以及你是否是管理员组的成员,系统可能会提示你同意或输入凭据。 或者,系统可能根本不提示你。 如果 UAC 可以获取管理权限,则后台进程将更改对该文件夹及其所有子文件夹和文件的权限,以授予用户帐户对其的访问权限。 在 Windows Vista 和 Windows Server 2008 中,后台进程授予用户帐户读取和执行权限。 在更高版本的 Windows 中,此过程授予用户帐户完全控制权限。

此行为是设计使然。 但是,由于 UAC 提升的典型模式是使用管理权限运行提升的程序实例,因此用户可能希望通过选择“ 继续”来生成提升的 Windows 资源管理器实例,并且不会对文件系统权限进行永久更改。 但是,这种预期是不可能的,因为 Windows 资源管理器的设计不支持在交互式用户会话的不同安全上下文中运行多个进程实例。

如果 UAC 已禁用,则无法提升 UAC。 由管理员组成员(包括 Windows 资源管理器)运行的所有程序始终具有管理权限。 因此,管理员无需使用提升来访问需要管理权限的资源。 例如,如果某个文件夹仅向 Administrators 组和系统帐户授予访问权限,则管理员可以直接浏览该文件夹,而不会提示更改文件夹的权限。 如果用户没有读取权限,Windows 资源管理器将显示前面所述的对话框。 但是,如果禁用 UAC,Windows 无法通过 UAC 提升提示请求用户的管理凭据。 因此,Windows 不会启动具有管理权限的后台进程来更改文件系统权限。

但是,如果用户选择“ 继续 ”,并且文件夹的当前安全描述符向用户授予读取和更改对象权限的权限,则 Windows 将在用户的当前安全上下文中启动后台进程,并修改文件夹的权限以授予用户更大的访问权限,如前所述。 用户可能有权从对象所有权或对象的访问控制列表 (ACL) 读取和更改对象的权限。

已知问题

此功能可能会导致意外行为。 例如,假设你属于“管理员”组,并使用 Windows 资源管理器访问需要管理访问权限的文件夹。 更改权限后,通过用户帐户运行的任何程序都可以完全控制文件夹,即使程序未提升,甚至从管理员组中删除你的帐户也是如此。 此类更改的权限可能违反组织的安全策略,并可能在安全审核中标记。 此外,如果某个程序验证文件系统权限,则如果权限已更改,它可能会拒绝运行。

在 Windows Server 上禁用用户帐户控制 (UAC) 中所述的约束情况外,在所有情况下,UAC 都应保持启用状态。

解决办法 1

若要避免更改只有管理员才能访问的文件夹中的权限,请考虑使用另一个可以提升运行的程序,而不是使用 Windows 资源管理器。 示例包括用于共享管理的命令提示符、PowerShell 和计算机管理 MMC 管理单元。

解决办法 2

如果你有一个应用程序特定的文件夹被锁定以防止普通用户访问它,你也可以添加自定义组的权限,然后将授权用户添加到该组。 例如,假设应用程序特定的文件夹仅向 Administrators 组和系统帐户授予访问权限。 在这种情况下,请创建域或本地 AppManagers 组,然后向其添加授权用户。 然后,使用实用工具(如 icacls.exe、文件夹的“属性”对话框的安全选项卡或 PowerShell Set-Acl cmdlet)授予 AppManagers 组对文件夹的完全控制权限,以及现有权限。

属于 AppManagers 成员的用户可以使用 Windows 资源管理器浏览文件夹,而无需 UAC 更改文件夹的权限。 此替代方法仅适用于特定于应用程序的文件夹。 切勿对属于 Windows 操作系统的文件夹(例如 C:\Windows\ServiceProfiles)进行任何权限更改。