我的 PC 有很多额外的驱动器。其中大多数都包含 Windows 和 Program Files 的旧副本。我的 PC 名为“PC”,我的管理员用户名为“Tim”。我已将这些第二个驱动器的所有权分配给用户“PC\Tim”,并授予用户“PC\Tim”对这些驱动器的完全控制权。然后,我尝试删除这些驱动器上的 Windows 或 Program Files 文件夹,并收到消息。
“您需要 PC\Tim 的许可才能更改此文件夹。”
这些文件夹的当前所有者列为“Tim (PC\Tim)”。这些文件夹的有效权限列出了此用户拥有的所有权利。
微软社区中荒谬的“答案”当然提供诸如“使用磁盘清理”(这是一个明显无知的答案)或“只需重新格式化驱动器”(格式化可以避免问题而不是解决问题)之类的东西。
删除这些旧文件的正确步骤是什么?
答案1
以管理员权限打开命令提示符。
逐个运行以下命令(将“Z:\Program Files”更改为要删除的文件夹):
takeown /F "Z:\Program Files" /A /R /D Y icacls "Z:\Program Files" /T /grant administrators:F rd /s /q "Z:\Program Files"
注 1 - 操作系统语言:takeown ... /D Y
输入 Y 代表“是”,根据操作系统语言的不同会有所不同。Program Files 文件夹和管理员的名称也可能不同。
注 2 - 旧版本的 Windows:如果不支持icacls
和,请尝试使用和rd
cacls
rmdir
解释和文件:
问题可能是你没有正确的权限 自主访问控制列表 (DACL)文件夹及其内容。DACL 标识允许或拒绝访问可安全对象的受托人。因此,仅仅授予文件夹所有权可能还不够,您还需要在 DACL 中授予权限。您可以使用 icacls 命令授予权限,如上例所示。访问控制列表和 DACL 说明
承担 接管文件 管理员通过将管理员组设为所有者,可以恢复之前被拒绝的目录及其内容的访问权限。/F [目录]指定哪个目录,/A赋予管理员组所有权,/R对目录、所有文件和子目录执行递归操作,/D当用户没有“列出文件夹”权限时,禁止确认提示,如下所示是选项,该选项获取目录的所有权。(注意:Y 选项可能因操作系统语言而异)。
伊卡克尔斯 icacls 文档 授予管理员组对目录的完全访问 DAC 权限。[目录]指定哪个目录,/T对目录和子目录中的所有指定文件执行操作,/授予授予指定用户访问权限:F授予完全访问权限。(注意:组名管理员可能因操作系统语言不同而不同)
路 研发文档 删除目录及其所有子目录和文件。/秒删除指定目录及其子目录(包括所有文件),/q指定安静模式,因此您不会收到确认提示,[目录]指定要删除的目录。
答案2
对我有用的是这个建议:
- 将文件夹重命名
Windows
为Windows.old
- 从“开始”菜单运行“磁盘清理”
Windows.old
选择包含该文件夹的驱动器- 上一步“Windows 安装”,然后单击“确定”
答案3
注意:现在我想起来了,你应该可以从第 4 步开始,只需点击“更改权限”按钮即可获得访问权限。我会测试,但我没有目录可以删除。
在 Windows 10 上(可能也适用于 Windows 7 和 8):
- 右键单击文件夹->属性->安全->高级。
- 单击所有者旁边的“更改”(在顶部)。在框中输入您的用户名,然后点击检查名称。(应转换为 MACHINENAME\USERNAME 样式。)
- 点击“确定”、“确定”、“确定”退出安全选项。
您现在应该拥有该目录。
- 右键单击文件夹->属性->安全->高级。(再次。)
- 在权限列表中找到“用户”。单击它,选择编辑,然后选择完全控制。
- 在底部,选中“替换所有子权限条目……”。
- 点击“确定”,然后在警告框中选择“是”。等待计算机应用新的权限。
您现在应该具有删除文件所需的权限。请执行此操作。(在 Program Files 文件夹和 Windows.old 上均进行了测试。)
答案4
只需将 Program Files 重命名为 Windows.old,然后运行磁盘清理即可清除系统文件。同样的技巧适用于任何无法删除的文件夹。