You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行icacls命令移除权限继承时丢失权限条目问题求解

问题原因

你观察到的非继承SYSTEM权限条目消失属于icacls工具的默认重复ACE合并逻辑:原始权限中同时存在显式配置的NT AUTHORITY\SYSTEM完全控制条目,和从父级继承来的同身份同权限条目,执行/inheritance:d时工具会自动合并重复条目,实际权限并未丢失,只是合并为单条显式条目展示。

解决方案(推荐PowerShell方案,可完全保留原有所有条目)

方案1:PowerShell原生操作(无条目合并问题)

按顺序执行以下命令即可实现你最终的需求,且不会丢失任何原有显式权限条目:

  1. 获取目标路径的ACL对象
$path = "替换为你的目标文件夹路径"
$acl = Get-Acl -Path $path
  1. 禁用权限继承,同时保留所有原有权限(包含你原有的显式SYSTEM权限)
# 第一个参数$true=禁用继承,第二个参数$true=保留原继承来的所有权限转为显式
$acl.SetAccessRuleProtection($true, $true)
  1. 删除BUILTIN\Users对应的AppendData和CreateFiles权限
$removeRules = $acl.Access | Where-Object {
    $_.IdentityReference.Value -eq "BUILTIN\Users" -and
    $_.AccessControlType -eq "Allow" -and
    ($_.FileSystemRights -match "AppendData|CreateFiles")
}
foreach ($rule in $removeRules) {
    $acl.RemoveAccessRule($rule) | Out-Null
}
  1. 将修改后的ACL配置写回目标文件夹
Set-Acl -Path $path -AclObject $acl

方案2:icacls命令操作

如果更习惯用icacls,可按以下步骤操作,注意该方法仍会合并重复ACE,但不影响实际权限有效性:

  1. 禁用继承并保留原有继承权限
icacls $path /inheritance:d
  1. 移除BUILTIN\Users的创建文件、附加数据权限,保留原有读取执行权限
icacls $path /grant:r "BUILTIN\Users:(OI)(CI)RX"

验证

操作完成后执行(Get-Acl $path).Access | ft即可查看权限配置,确认所有预期权限保留、不需要的Users权限已删除。

内容的提问来源于stack exchange,提问作者Empty Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:06:03