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

laj*_*jos 66 windows-7 permissions

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

需要权限来执行此操作。

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

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

如何强制删除这些文件?

har*_*ymc 86

有可能通过升级,旧的 XP 用户没有很好地转换到 Windows 7 - 因此这些文件由一个幻影用户拥有。您可以按照以下步骤操作:

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

    takeown /f file
    takeown /f directory /r
    
    Run Code Online (Sandbox Code Playgroud)
  2. 赋予自己对该文件的完全权利:

    cacls file /G username:F
    cacls directory /T /G username:F
    
    Run Code Online (Sandbox Code Playgroud)

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

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

  • 即使在以管理员身份运行 cmd 后,我仍然收到“错误:访问被拒绝”! (11认同)
  • 您是否通过右键单击 cmd.exe 和“以管理员身份运行”来启动命令提示符? (6认同)
  • 感谢您指出了这一点。我没有以管理员身份运行。现在正在工作! (2认同)
  • @harrymc,关于*“这些文件由虚拟用户拥有”*这可能吗? (2认同)
  • @Pacerier:是的,我称“幻影”为在一台计算机上创建的用户(非内置)帐户,因此在另一台计算机上不存在。 (2认同)

Les*_*ezi 30

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

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

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

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


小智 6

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

我必须执行两个进一步的步骤:

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

  2. 从最里面到根目录手动删除文件夹中的文件。一旦文件夹为空,就删除它们,即如果您有“文件夹 1-> 文件夹 2”,则首先删除文件夹 2 的内容,然后删除文件夹 2 等。

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