按 ESC 键关闭

Windows如何通过CMD命令授权文件夹权限

在Active Directory环境中我们可能没有权限对文件夹内容进行操作,当需要进行文件增删改的时候,这时可以使用icacls命令:

icacls

显示或修改指定文件上的随机访问控制列表 (DACL),并将存储的 DACL 应用于指定目录中的文件。

语法

icacls <filename> [/grant[:r] <sid>:<perm>[...]] [/deny <sid>:<perm>[...]] [/remove[:g|:d]] <sid>[...]] [/t] [/c] [/l] [/q] [/setintegritylevel <Level>:<policy>[...]]
icacls <directory> [/substitute <sidold> <sidnew> [...]] [/restore <aclfile> [/c] [/l] [/q]]

参数

参数说明
<filename>指定要为其显示或修改 DACL 的文件。
<directory>指定要显示或修改 DACL 的目录。
/t对当前目录及其子目录中的所有指定文件执行操作。
/c尽管存在任何文件错误,但仍继续操作。 仍会显示错误消息。
/l对符号链接执行操作,而不是对目标执行操作。
/q禁止成功消息。
[/save <ACLfile> [/t] [/c] [/l] [/q]]将所有匹配文件的 DACL 存储在访问控制列表中, (ACL) 文件以供稍后用于 /restore
[/setowner <username> [/t] [/c] [/l] [/q]]将所有匹配文件的所有者更改为指定用户。
[/findsid <sid> [/t] [/c] [/l] [/q]]查找包含 DACL 的所有匹配文件,该文件显式提及指定的安全标识符 (SID) 。
[/verify [/t] [/c] [/l] [/q]]查找具有非规范或长度与访问控制项不一致的所有文件, (ACE) 计数。
[/reset [/t] [/c] [/l] [/q]]将所有匹配文件的 ACL 替换为默认继承的 ACL。
[/grant[:r] <sid>:<perm>=]授予指定的用户访问权限。 权限替换以前授予的显式权限。不添加 :r,表示将权限添加到以前授予的任何显式权限。
[/deny <sid>:<perm>}]显式拒绝指定的用户访问权限。 为已说明的权限添加显式拒绝 ACE,并删除任何显式授予中的相同权限。
[/remove[:g | :d]] <sid>~ [/t] [/c] [/l] [/q]从 DACL 中删除指定 SID 的所有匹配项。 此命令还可以使用::g – 删除指定 SID 的所有已授予权限。:d – 删除指定 SID 的所有被拒绝权限。
[/setintegritylevel [ (CI) (OI) ] <Level>:<Policy>}]将完整性 ACE 显式添加到所有匹配的文件。 级别可以指定为:l – 低m– 中等h – 高完整性 ACE 的继承选项可能位于级别之前,并且仅应用于目录。
[/substitute <sidoldsidnew>>< •]将现有的 SID (sidold) 替换为新的 SID (sidnew) 。 需要使用参数 <directory>
/restore <ACLfile> [/c] [/l] [/q]将存储的 DACL 应用于 <ACLfile> 指定目录中的文件。 需要使用参数 <directory>
/inheritancelevel: [e | d | r]设置继承级别,可以是:e – 启用继承d – 禁用继承并复制 ACEr – 禁用继承并仅删除继承的 ACE

注解

  • SID 可能采用数字或友好名称形式。 如果使用数字形式,请将通配符 * 附加到 SID 的开头。
  • 此命令将 ACE 条目的规范顺序保留为:
    • 显式拒绝
    • 显式授予
    • 继承的拒绝
    • 继承的授予
  • 该 <perm> 选项是一个权限掩码,可在以下形式之一中指定:
    • 简单权限序列 (基本权限) :
      • F – 完全访问权限
      • M– 修改访问权限
      • RX – 读取和执行访问权限
      • R – 只读访问权限
      • W – 仅写访问权限
    • 特定权限的括号中的逗号分隔列表 (高级权限) :
      • D – 删除
      • RC – 读取控制 (读取权限)
      • WDAC – 写入 DAC (更改权限)
      • WO – 写入所有者 (获取所有权)
      • S – 同步
      • AS – 访问系统安全性
      • MA – 允许的最大数量
      • GR – 泛型读取
      • GW – 泛型写入
      • GE – 泛型执行
      • GA – 全部通用
      • RD – 读取数据/列表目录
      • WD – 写入数据/添加文件
      • AD – 追加数据/添加子目录
      • REA – 读取扩展属性
      • WEA – 编写扩展属性
      • X – 执行/遍历
      • DC – 删除子级
      • RA – 读取属性
      • WA – 写入属性
    • 继承权可能位于任一 <perm> 形式之前:
      • (我) – 继承。 ACE 继承自父容器。
      • (OI) – 对象继承。 此容器中的对象将继承此 ACE。 仅适用于目录。
      • (CI) – 容器继承。 此父容器中的容器将继承此 ACE。 仅适用于目录。
      • (IO) – 仅继承。 ACE 继承自父容器,但不适用于对象本身。 仅适用于目录。
      • (NP) – 不传播继承。 ACE 由容器和对象从父容器继承,但不传播到嵌套容器。 仅适用于目录。

示例

若要将 C:\Windows 目录中的所有文件的 DACL 及其子目录保存到 ACLFile 文件中,请键入:

icacls c:\windows\* /save aclfile /t

若要还原 C:\Windows 目录中及其子目录中存在的 ACLFile 中的每个文件的 DACL,请键入:

icacls c:\windows\ /restore aclfile

若要向用户授予 User1 Delete 和 Write DAC 权限,请键入:

icacls test1 /grant User1:(d,wdac)

若要授予 SID S-1-1-0 对名为 Test2 的文件的删除和写入 DAC 权限,请键入:

icacls test2 /grant *S-1-1-0:(d,wdac)