icacls 可备份还原 NTFS 权限,需管理员权限、NTFS 分区、同卷操作;备份用 /save 导出 ACL 到文本,还原用 /restore 严格匹配路径,不支持跨机跨卷,文件损坏或路径不符将导致失败。
用 icacls 备份和还原 ntfs 权限,核心是先导出当前 acl 到文本文件,再在需要时原样恢复。整个过程不依赖第三方工具,但必须满足几个前提:操作需以管理员身份运行、目标分区为 ntfs 格式、备份与还原必须在同一台机器的同一卷上进行。
备份权限到文件
执行命令前,确保你对目标文件夹有读取权限(至少能查看其安全属性)。常用备份命令格式如下:
-
完整备份(含子项):
icacls "D:\MyData" /save acl_backup.txt /t -
跳过访问被拒项继续执行:
icacls "D:\MyData" /save acl_backup.txt /t /c -
静默模式(不显示成功提示):
icacls "D:\MyData" /save acl_backup.txt /t /c /q
生成的 acl_backup.txt 是纯文本,记录了每个文件/文件夹的路径及其完整 ACL 条目,不可手动编辑——否则还原会失败。
还原权限从备份文件
还原不是“一键覆盖”,而是按备份文件中记录的路径,逐项写回权限。关键点在于路径必须严格匹配:
-
正确写法(还原到 D:\MyData 及其全部子项):
icacls "D:\MyData" /restore acl_backup.txt -
错误写法(会报错或还原到错误位置):
icacls "D:\MyData\SubFolder" /restore acl_backup.txt或icacls D:\ /restore acl_backup.txt -
跳过无权访问项并静默执行:
icacls "D:\MyData" /restore acl_backup.txt /c /q
如果备份时用了 /t,还原时也必须作用于同一根目录;若备份的是 D:\MyData\*,还原命令中的路径就必须是 "D:\MyData",不能多一级也不能少一级。
验证备份是否有效
还原前建议快速检查备份内容是否完整:
- 用记事本打开
acl_backup.txt,确认开头几行包含类似D:\MyData\file.txt的路径条目 - 执行
icacls "D:\MyData" /t | findstr /i "yourusername",对比还原前后该用户的权限是否变化 - 还原后右键文件夹 → 属性 → 安全 → 高级 → 点击“显示继承的权限”,确认是否已按备份内容生效
注意事项与常见问题
这个机制不是万能的,有些情况会失败:
-
跨卷或跨机还原无效:SID(如
S-1-5-21-...)在不同系统中含义不同,/restore仅支持本机同盘还原 -
还原时目标路径不存在:会跳过该条目,不报错也不提示;建议先用
robocopy /mir同步结构再还原权限 - 备份文件被修改或损坏:还原过程会中断并报错,此时只能重新备份
-
权限冲突(如存在 DENY 规则):还原不会自动清除原有拒绝项,必要时先用
icacls ... /remove:d *清理


















