我将笔记本电脑的操作系统从 Windows XP 更新到了 Windows 7。现在电脑上有一些 Windows XP 的残留文件。如果我尝试删除它们,会出现以下错误:
需要权限来执行此操作。
您需要获得 S-1-.... 的许可才能更改此文件夹。
奇怪的是,我用这台机器上唯一的用户账户登录,并且拥有管理员权限。我尝试关闭 UAC,但仍然无法删除文件。
我怎样才能强制删除这些文件?
答案1
有可能升级后,旧 XP 用户无法顺利转换到 Windows 7 - 因此这些文件归幻影用户所有。您可以按照以下步骤操作:
获取文件所有权。以管理员身份启动命令提示符 (cmd),然后输入:
takeown /f file takeown /f directory /r
授予自己对文件的全部权限:
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 进行的,并且该文件夹处于源代码控制之下)。
我必须执行另外两个步骤:
右键单击包含要删除的文件的文件夹,然后选择“属性”->“安全”->“高级”->选择您的用户->“更改权限”->选中“用从该对象继承的权限替换所有子对象权限”
手动从最内层到根目录删除文件夹中的文件。文件夹为空后再删除,例如,如果您有“folder1->folder2”,则首先删除 folder2 的内容,然后删除 folder2 等。
如果其他解决方案不够,您可以尝试这些进一步的步骤。
答案4
平常takeown
并(i)cacls
做好这项工作。
或者,您可以使用解锁者删除它(可能需要重启),
或者使用Sysinternals 的 PsExec获取系统用户权限并删除这些文件(此方法对某些文件有效,但对其他文件可能会失败)。
但是如果该文件夹中有很多文件,则需要花费大量时间来获取takeown
权限(我花了大约 20 分钟,取决于硬盘速度)。因此在这种情况下,任何 LiveCD/DVD/USB 都更快,因为它们不需要任何权限来删除文件夹。