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

本文提供了一个解决方案,用于解决选择“继续以获取对没有读取权限的文件系统文件夹的访问权限的问题。

原始 KB 数: 950934

简介

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

详细信息

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

您当前无权访问此文件夹。 单击“继续”可永久访问此文件夹。

注意

在 Windows Vista 和 Windows Server 2008 中,第二个句子不包含永久单词:只需说 单击“继续”即可访问此文件夹。

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

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

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

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

已知问题

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

除 Windows Server 上的“如何禁用用户帐户控制”(UAC)中所述的受限情况外,UAC 应在所有情况下保持启用状态。

解决方法 1

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

解决方法 2

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

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