递归更改所有者 Windows 7

104 windows-7 permissions ownership windows-10

不知何故,我不小心将子文件夹中的所有文件设置为“无所有者”,我似乎无法更改所有权限。我可以通过更改所有者然后设置权限来手动更改一个,但如何更改所有文件的所有者在这个目录中一次?

lau*_*ent 116

要修复真正损坏的权限,最好的方法是依次运行这两个命令:

takeown /f "C:\path\to\folder" /r
icacls "C:\path\to\folder" /reset /T
Run Code Online (Sandbox Code Playgroud)

第一个将为您提供所有文件的所有权,但这可能还不够,例如,如果所有文件的读/写/执行权限都设置为“拒绝”。您拥有这些文件,但仍然无法对它们进行任何操作。

在这种情况下,运行第二个命令,这将修复损坏的权限。

  • 最好的建议,需要同时使用 takeown 和 icacls。 (4认同)
  • 我已将 `/DY` 参数添加到 `takeown`,因此它会自动确认您没有“列表目录”权限的递归目录。 (4认同)
  • 出色的技术建议……您的解决方案是唯一有效的解决方案。再次感谢。 (3认同)
  • 如果您希望将“所有权授予管理员组而不是当前所有者”,则 /A 选项很有用。您需要具有管理员权限才能执行此操作。可能需要使用 ctrl-shift-enter 打开 cmd 窗口。 (3认同)
  • @JeroenWiertPluimers,虽然这是一个很好的建议,但我已经删除了编辑,因为它(愚蠢地)是一个本地化参数,所以在英语 Windows 上它将是 `/DY`,在法语上是 `/DO`,也许在西班牙语上是 `/DS` , 等等。 (3认同)

Kez*_*Kez 102

使用takeown从命令提示符采取所有权的文件夹,它的所有子文件夹和文件递归:

takeown /f "c:\folder\subfolder" /r
Run Code Online (Sandbox Code Playgroud)

这很有效,但如果您不以管理员身份运行命令行控制台,它可能会因您不拥有的文件而失败。


the*_*ere 27

请注意 cacls 已被弃用(从 Windows Vista 开始?),它建议您使用icacls.

此命令将递归重置文件夹的权限:

icacls "C:\path\to\folder" /reset /T
Run Code Online (Sandbox Code Playgroud)


Joh*_*n T 5

您可以cacls从命令提示符使用:

cacls "C:\path\to\folder" /E /T /C /G "管理员":F

/T开关它允许递归函数。替换Administrator为您希望授予权限的用户。