首页/系统/Windows 运维速查/icacls 查看文件与目录权限
磁盘与文件43 条

icacls 查看文件与目录权限

命令行查看 ACL:账号、权限掩码、继承标记;比图形属性对话框快得多,权限审计与脚本核对首选。

Windows 运维速查系统更新于 2026-10-13

icacls 是什么

icacls 在命令行查看文件与目录的访问控制列表,输出里包含被授权的账号、权限掩码和继承标记。相比图形界面的属性对话框,它更快、输出可复制、也便于脚本化,是权限审计与排错的首选工具。

基本信息

适用平台Windows(系统自带程序,CMD 与 PowerShell 均可调用)
语法icacls 路径 [/T 递归] [/C 忽略错误继续] [/Q 精简输出] [/save 文件名]
继承标记(I) 继承而来、(OI) 对象继承、(CI) 容器继承
权限掩码F 完全控制、M 修改、RX 读取与执行、W 写入、R 读取
结构化替代Get-Acl 或 /save 导出的 SDDL,便于程序解析

典型使用场景

  • 排查“为什么某个账号访问不了这个目录”
  • 权限审计:检查共享目录是否存在过宽的授权
  • 目录迁移前记录原始权限,迁移后逐项比对
  • 批量确认同层级目录的权限是否统一继承自父级
  • 安全事件后核实可疑账号是否被授予了过高权限

常用示例

常用示例
REM 查看单个目录的 ACL
icacls D:\Share
REM 递归查看,忽略错误继续并精简输出
icacls D:\Share /T /C /Q
REM 查看单个文件的权限
icacls D:\Share\report.xlsx
REM 导出 SDDL 留档,便于跨机比对
icacls D:\Share /save D:\acl\share.txt /T
REM 结构化取用权限条目
powershell -c "(Get-Acl D:\Share).Access | Select-Object IdentityReference, FileSystemRights, AccessControlType"

输出读法

字段含义要留意的点
账号或组被授权的身份组授权要结合组成员才能判断实际权限
括号内标记(I) 继承、(OI)(CI) 继承方向没有 (I) 说明是本层显式设置
权限掩码F 完全、M 修改、RX 读取执行、W 写入字母含义要对照文档,别凭印象
拒绝条目显式拒绝优先于所有允许常常就是问题的直接原因
处理统计成功与失败的文件数递归时据此判断结果是否完整
排查权限问题先盯两点:谁被拒绝、这条权限继承自哪一层。这两条信息都在 icacls 输出里,不必一层层点开图形属性对话框。
中文系统下 icacls 的输出文本是本地化的,用 findstr 匹配英文关键字的脚本在国内环境会失效。需要程序化解析时改用 Get-Acl 或 /save 导出的 SDDL。

易错点

  • 用英文关键字匹配中文系统的 icacls 输出会失败,脚本化处理应改用对象方式或 SDDL
  • 递归时只加 /T 不加 /C,遇到一个无权限的子项整个命令就中断,结果不完整
  • 把大目录的递归权限输出直接刷屏会丢失内容,应先重定向到文件再分析
  • 只看像拒绝的条目而忽略组授权,会漏掉真正的权限来源
  • 把掩码字母记混会误判,例如误以为写入包含删除权限

数据来源与参考

  • Microsoft Learn:icacls
  • Microsoft Learn:icacls 输出解读

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌