使用 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
标志更改子目录。