最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Windows 如何使用 icacls 替换子目录中继承的冲突权限
时间:2026-09-02 19:38:47 编辑:袖梨 来源:一聚教程网
要让子目录彻底采用父目录继承权限,需先清空显式权限再启用继承:用icacls /inheritance:e /reset /t /c命令强制恢复继承并删除所有手工ACE;若仅删拒绝项则用/remove:d;最后比对父子权限验证一致性。
要让子目录彻底放弃原有显式权限、统一采用父目录继承来的权限,关键不是“替换”而是“清空+启用继承”。icacls 没有直接叫“替换继承”的参数,但通过组合 /reset 和 /inheritance:e 可以达到等效效果。
先确认当前继承状态是否被禁用
很多冲突源于子项手动关闭了继承。运行以下命令检查:
icacls "D:Project" /t /c
输出中若某子文件夹显示 “(OI)(CI)” 缺失 或标注 “Not inherited”,说明它已断开继承,必须先恢复继承能力,再重置权限。
一步到位:启用继承 + 重置为纯继承状态
执行这条命令,可同时完成两件事:强制子项重新接受父级继承,并清除所有手工添加的允许/拒绝条目:
icacls "D:Project" /inheritance:e /reset /t /c
- /inheritance:e 启用继承(即使之前被禁用,也会重新打开)
- /reset 删除所有显式设置的 ACE,只保留继承来的权限
- /t 递归应用到全部子目录和文件
- /c 遇到访问被拒的子项不中断,继续处理其余项
如果只想清除拒绝权限但保留允许项
有时你只想去掉冲突的 /deny 条目(比如误加的 Everyone:(DENY)),又不想动已有允许权限。这时不能用 /reset,改用:
icacls "D:Project" /remove:d Everyone /t /c
- /remove:d 仅删除指定用户的拒绝型 ACE
- /remove:g 对应删除允许型 ACE(慎用,会删掉合法授权)
- 该操作不影响继承开关,也不会改动其他用户的权限
验证是否生效
执行完后,用以下命令快速比对父子权限一致性:
icacls "D:Project"
icacls "D:ProjectSubfolder"
两者都应显示相同主体(如 BUILTINAdministrators、NT AUTHORITYSYSTEM)、相同权限标记(如 (OI)(CI)(F))、且无 DENY 行。若仍有差异,大概率是某个子项所有者不是你当前账户——此时需先用 takeown /f "path" /r /d y 获取所有权,再运行 icacls。