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


64

我将笔记本电脑的操作系统从Windows XP更新为Windows7。现在计算机上有一些Windows XP的剩余文件。如果尝试删除它们,则会出现以下错误:

需要权限来执行此操作。

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

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

如何强制删除这些文件?

Answers:


85

升级后,旧的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权限


1
takeown命令导致错误:C:\> takeown / f olddir / r错误:当前登录的用户对文件“ C:\ olddir”(或文件夹)没有所有权特权。
lajos

6
您是否通过右键单击cmd.exe和“以管理员身份运行”启动命令提示符?
harrymc

1
感谢您指出了这一点。我没有以管理员身份运行。现在正在工作!
lajos

11
即使以管理员身份运行cmd,我仍然会收到“错误:访问被拒绝”信息!
英国电信

2
@Pacerier:是的,我称“幻像”是在一台计算机上创建的用户(非内置)帐户,因此在另一台计算机上不存在。
harrymc 2015年

29

用于获取所有权的命令行参数应按此顺序

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

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

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

5

在我的情况下,对于我的特定情况,在Windows 7中拥有所有权是不够的(我的Windows 7安装是使用Symantec Backup Exec从另一台计算机进行的,并且该文件夹处于源代码控制之下)。

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

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

  2. 从最里面到根手动删除文件夹中的文件。一旦文件夹为空,则将其删除,即,如果您具有“ folder1-> folder2”,则首先删除folder2的内容,然后再删除folder2等。

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


1

S-1-...是上次安装留下的GUID。显然NEWSYSTEM\Administrator不属于该OLDSYSTEM\Administrators组。

您需要获得驱动器的所有权,让更改传播,然后您才能删除文件。


1

通常takeown(i)cacls做的工作。

或者,您可以使用Unlocker删除它(可能需要重新启动),
或者使用Sysinternals的PsExec获取SYSTEM用户特权并删除这些文件(该文件将在某些文件上起作用,而在另一些文件上可能失败)。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.