如何获取在 Windows 7 上删除文件的权限?

如何获取在 Windows 7 上删除文件的权限?

我将笔记本电脑的操作系统从 Windows XP 更新到了 Windows 7。现在电脑上有一些 Windows XP 的残留文件。如果我尝试删除它们,会出现以下错误:

需要权限来执行此操作。

您需要获得 S-1-.... 的许可才能更改此文件夹。

奇怪的是,我用这台机器上唯一的用户账户登录,并且拥有管理员权限。我尝试关闭 UAC,但仍然无法删除文件。

我怎样才能强制删除这些文件?

答案1

有可能升级后,旧 XP 用户无法顺利转换到 Windows 7 - 因此这些文件归幻影用户所有。您可以按照以下步骤操作:

  1. 获取文件所有权。以管理员身份启动命令提示符 (cmd),然后输入:

    takeown /f file
    takeown /f directory /r
    
  2. 授予自己对文件的全部权限:

    cacls file /G username:F
    cacls directory /T /G username:F
    

cacls可以与通配符和目录遍历一起使用。另请参阅:
使用 CACLS 从命令行实现安全性
CACLS 命令

有关更先进的 Visual Basic 脚本,请参阅:Xcacls.vbs 修改 NTFS 权限

答案2

获取所有权的命令行参数应按以下顺序排列

takeown /f <目录> /r
/f 文件名或目录名称模式
/r 递归

注意:cacls现已弃用,请使用 icacls

icacls <目录> /grant <用户>:f /t
完全访问
/t 递归

答案3

就我的情况而言,在 Windows 7 中取得所有权对于我的特殊情况来说是不够的(我的 Windows 7 安装是使用另一台机器上的 Symantec Backup Exec 进行的,并且该文件夹处于源代码控制之下)。

我必须执行另外两个步骤:

  1. 右键单击包含要删除的文件的文件夹,然后选择“属性”->“安全”->“高级”->选择您的用户->“更改权限”->选中“用从该对象继承的权限替换所有子对象权限”

  2. 手动从最内层到根目录删除文件夹中的文件。文件夹为空后再删除,例如,如果您有“folder1->folder2”,则首先删除 folder2 的内容,然后删除 folder2 等。

如果其他解决方案不够,您可以尝试这些进一步的步骤。

答案4

平常takeown(i)cacls做好这项工作。

或者,您可以使用解锁者删除它(可能需要重启),
或者使用Sysinternals 的 PsExec获取系统用户权限并删除这些文件(此方法对某些文件有效,但对其他文件可能会失败)。

但是如果该文件夹中有很多文件,则需要花费大量时间来获取takeown权限(我花了大约 20 分钟,取决于硬盘速度)。因此在这种情况下,任何 LiveCD/DVD/USB 都更快,因为它们不需要任何权限来删除文件夹。

相关内容