如何在 Windows Server 2012 上使用 icacls 替换权限和其中的所有内容?

如何在 Windows Server 2012 上使用 icacls 替换权限和其中的所有内容?

使用 Windows Server 2012 R2 和 Windows Server 2008 R2。

我有一个名为 的文件夹C:\temp\test,我想授予SYSTEM用户及其所有文件和子目录的访问权限,并删除其他所有内容。我尝试过此命令,但所有现有权限仍然存在:

现有的权限有:

Access : NT AUTHORITY\SYSTEM Allow  FullControl
         BUILTIN\Administrators Allow  FullControl
         BUILTIN\Users Allow  ReadAndExecute, Synchronize
         BUILTIN\Users Allow  AppendData
         BUILTIN\Users Allow  CreateFiles
         CREATOR OWNER Allow  268435456

我想删除除 之外的所有 ACL SYSTEM,并添加<DOMAIN>\<USER>

我尝试了这个命令:

icacls c:\temp\test /grant:r <DOMAIN>\<USER>:(OI)(CI)F /t

processed file: c:\temp\test
Successfully processed 1 files; Failed processing 0 files

当我事后查看权限时,发现<DOMAIN>\<USER>具有正确的权限,但其他所有权限都保留。我以为/grant:r替换了所有权限?您知道我需要运行什么命令来删除所有其他权限吗?

答案1

正如评论中提到的,您还必须使用/inheritance:r开关来删除继承的权限。

/grant:r仅删除明确的权限。

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /T

还授予SYSTEM

icacls c:\temp\test /inheritance:r /grant:r <DOMAIN>\<USER>:(OI)(CI)F /grant:r SYSTEM:(OI)(CI)F /T

答案2

该参数/grant:r对我不起作用。我不得不使用/reset将权限恢复为仅继承,然后删除继承的权限。不要忘记使用/t标志更改子目录。

相关内容