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

PowerShell移除文件夹特殊NTFS权限误删SYSTEM权限问题

问题原因分析
  1. icacls $path /reset 命令的默认行为就是删除目标对象所有手动配置的显式NTFS权限,仅保留从父目录继承来的权限。你提到的仅作用于当前文件夹的SYSTEM权限属于手动添加的显式权限,不属于继承权限范畴,执行该命令时自然会被直接清除。
  2. 你的脚本存在时序逻辑错误:你在脚本最开始用Get-Acl读取了文件夹的原始权限存入$acl变量,后续执行/reset和/inheritance:d(禁用权限继承)的操作是直接修改文件系统的权限状态,此时你再将最早保存的$acl回写到文件夹,会因为禁用继承后权限继承状态已经变化,导致权限条目匹配异常、丢失。
修复建议
  • 如果你仅需要移除BUILTIN\Users组的指定显式权限,不需要重置全局权限,可以直接删除icacls $path /reset /t /c /l /q和icacls $path /inheritance:d两行代码,直接操作最开始读取的$acl对象即可,不会影响其他账号的显式权限配置。
  • 如果确实需要保留重置权限、禁用继承的逻辑,需要调整执行顺序:先执行icacls的重置和禁用继承操作,再重新用Get-Acl读取当前最新的ACL对象,再执行后续的权限筛选、移除、回写操作,避免使用状态已经过期的旧ACL对象回写导致异常。

内容的提问来源于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 05:36:00