必须显式添加“拒绝删除”规则才能防止误删,仅取消“删除”允许权限无效;需在NTFS高级安全设置中为用户/组勾选“删除”和“删除子文件夹及文件”并设为“拒绝”,应用于“此文件夹、子文件夹和文件”,同时清除“完全控制”等覆盖性允许权限。

当你需要确保某个重要文件夹不被任何人(包括自己)误删时,必须在NTFS权限中显式添加“拒绝删除”规则,仅靠取消“删除”允许权限是无效的——系统默认未勾选即不赋予,但不会阻止已有更高权限者执行删除。
用图形界面添加拒绝删除权限
第一步:右键目标文件夹→选择“属性”→切换到“安全”选项卡→点击右下角“高级”。
第二步:在“权限”列表中,点击“添加”→在弹出窗口中点击“选择主体”→输入你的用户名或目标用户组(如Users)→“检查名称”→“确定”。
第三步:回到权限条目设置页→点击“显示高级权限”→在下方权限列表中,【务必勾选“删除”和“删除子文件夹及文件”两项,并将“类型”设为“拒绝”】→在“应用于”下拉菜单中选择“此文件夹、子文件夹和文件”。
第四步:点击“确定”→返回高级安全设置窗口→再点一次“确定”关闭。此时该文件夹图标右下角可能出现红色盾牌覆盖图标,表示拒绝策略已生效。
用PowerShell一次性配置并验证
方法一:快速设置当前用户拒绝删除权限
以管理员身份运行PowerShell→执行以下命令(将路径替换为你的真实路径):
icacls "D:\ImportantFolder" /deny %USERNAME%:(DE,DC) /t /c /q
方法二:精确控制权限组合(推荐用于共享环境)
先获取当前ACL对象:
$acl = Get-Acl "D:\ImportantFolder"
创建拒绝删除规则(注意:拒绝权限必须显式添加,且优先于所有允许项):
$denyRule = New-Object System.Security.AccessControl.FileSystemAccessRule("Everyone", "Delete, DeleteSubdirectoriesAndFiles", "ContainerInherit, ObjectInherit", "None", "Deny")
$acl.SetAccessRule($denyRule)
应用新权限:
Set-Acl "D:\ImportantFolder" $acl
【执行后立即测试:尝试删除该文件夹内任意文件,应提示‘拒绝访问’;若仍可删,请检查是否遗漏/t参数或路径拼写错误】
绕过常见失效陷阱
如果设置了拒绝删除却依然能删掉文件夹,大概率是因为你同时拥有“完全控制”权限——拒绝权限虽高,但若同一账户在另一条权限记录中被授予了“完全控制”,则该允许项会覆盖拒绝项。
必须进入“高级安全设置”→逐条检查权限列表→找到含“完全控制”的条目→编辑它→取消勾选“完全控制”,只保留必要权限(如读取、遍历、列出文件夹内容)。
这一步操作起来很简单,但跳过会导致整个拒绝策略形同虚设。
确认无“完全控制”允许项后,再右键该文件夹→“属性”→“安全”→“高级”→点击底部“禁用继承”→选择“从父项继承的权限副本”→点击“删除”→清空所有继承权限→重新添加你刚配置的拒绝删除规则。

















