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

Mar*_*son 17 windows windows-server-2008-r2 icacls windows-server-2012-r2

使用 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
Run Code Online (Sandbox Code Playgroud)

我想删除除 之外的所有 ACLSYSTEM并添加<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
Run Code Online (Sandbox Code Playgroud)

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

kri*_*sFR 18

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

/grant:r 只删除显式权限。

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

还授予SYSTEM

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


Jan*_*ník 8

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