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


15

使用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替换了所有权限?您知道要删除所有其他权限时需要运行什么命令吗?


该命令完全符合我的要求,cacls c:\temp\test /t /g <DOMAIN>\<USER>:F但是我听说icacls已取代它,有人可以告诉我等效的icacls版本以产生相同的行为吗?
Mark Allison 2014年

3
/grant:r仅删除现有的显式权限,而不从上面的文件夹中删除继承的权限。您还需要包括在内/inheritance:r
TheCleaner 2014年

1
如果CACLS完成了这项工作,那么无论是否已弃用,都没有理由不使用它。
joeqwerty 2014年

@joeqwerty是对的,但感觉太脏了。cacls本身甚至返回使用icacls的消息,因此必须有一个很好的理由。NOTE: Cacls is now deprecated, please use Icacls.
Mark Allison 2014年

2
@joeqwerty cacls.exe可能会以错误的顺序设置ACL,从而可能引起问题(我将其留给读者练习)。
Craig

Answers:


16

如前所述,您还必须使用该/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

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.