icacls

Visits: 174

查看权限

显示对象的当前 ACL

icacls "D:\Share\xyx115.txt"
rem 显示文件D:\Share\xyx115.txt当前的 ACL
获取文件xyx115.txt的权限属性
icacls "D:\Share"
rem 显示目录 D:\Share 当前的 ACL
获取目录Share的权限属性

权限继承或禁止继承

使用 icacls/inheritance 选项 启用或禁用 文件夹/文件对象的权限

  • e启用继承;
  • d禁用 ACE 继承和复制;
  • r删除所有继承的 ACE。

启用继承

icacls "D:\Share\test-1" /inheritance:e
rem 1. 启用目录的继承权限
rem 2. D:\Share\test-1为当前示例中要设置的目录
rem 3. /inheritance:e,/inheritance继承权限设置开关,其中e(enable)表示启用
使用命令在test-1目录上启用权限继承
设置权限继承后的高级安全属性

禁用 ACE 继承和复制

icacls "D:\Share\test-1" /inheritance:d
rem 1. 禁用目录的继承权限
rem 2. D:\Share\test-1为当前示例中要设置的目录
rem 3. /inheritance:d,/inheritance继承权限设置开关,其中d(disabled)表示禁用

删除所有继承的 ACE

icacls "D:\Share\test-1" /inheritance:r
rem 1. 移除目录的继承权限
rem 2. D:\Share\test-1为当前示例中要设置的目录
rem 3. /inheritance:d,/inheritance继承权限设置开关,其中r(remove)表示移除

删除权限

要从用户(或组)中删除权限,只需从对象的 ACL 中删除相应的 ACE。不要忘记事先禁用从该对象继承(如果目标是目录)。

icacls D:\Share\test-1 /inheritance:d /t /c
rem 禁用 ACE 继承和复制
icacls D:\Share\D08 /remove:g xyx115pc-hp\testuser /t /c
rem 只删除允许的权限
icacls D:\Share\D08 /remove:d xyx115pc-hp\testuser /t /c
rem 只删除禁止的权限
icacls D:\Share\D08 /remove xyx115pc-hp\testuser /t /c
rem 删除允许、禁止的所有权限

举例:

icacls D:\Share\test-1 /inheritance:d /t /c
icacls D:\Share\test-1 /remove:g xyx115pc-hp\testuser /t /c
  • 第一行,/inheritance:d禁用目录权限的继承并复制 ACE。
    • 要直接禁用继承而不复制 ACE,然后删除继承的 ACE,可以使用inheritance:r,但是此操作有点风险。您可能会将自己锁定,因为这可能会删除您自己的访问权限。
    • 要重新启用继承,请使用 inheritance:e
  • 第二行,/remove:g删除授予该目录的xyx115pc-hp\testuser用户的权限,若要删除拒绝权限,请使用 /remove:d 参数。

添加权限

允许所有权限

icacls D:\Share\D08 /inheritance:R /t /c
rem 删除所有继承的 ACE
icacls D:\Share\D08 /grant xyx115pc-hp\X_Sir:(OI)(CI)(F,GA)
rem 添加管理员,拥有对文件夹的所有权限
rem 1. D:\Share\D08,文件夹
rem 2. xyx115pc-hp\X_Sir,本地计算机中的X_Sir用户。也可以是AD域的用户、用户组。
rem 3. F,完全控制
rem 4. GA,所有通用的权限
rem 5. (OI),对象继承 - 此标志指示从属文件将继承 ACE
rem 6. (CI),容器继承 - 此标志指示从属容器将继承此 ACE

允许读写删

向用户 xyx115pc-hp\testuser 授予除完全控制和取得所有权之外的其他权限 到 D:\Share\D08 目录,具体权限参见下图。

icacls D:\Share\D08 /inheritance:R /t /c
rem 删除所有继承的 ACE
rem 如果继承与 /T(遍历子文件夹)结合使用,则更改将应用于所有文件夹,而不仅仅是顶级文件夹。
rem /C 在文件错误时(拒绝访问)继续,错误信息仍然显示。
icacls D:\Share\D08 /grant xyx115pc-hp\X_Sir:(OI)(CI)(F,GA)
rem 添加管理员,拥有对文件夹的所有权限
icacls D:\Share\D08 /grant xyx115pc-hp\testuser:(OI)(CI)(M,WDAC)
rem 添加指定用户,对文件夹拥有除完全控制和取得所有权之外的其他权限,即读写删执行权限

允许读写,禁止删除

允许读写,禁止删除,包括当前目录,子目录
icacls D:\Share\D08 /inheritance:R /T /C
rem 删除所有继承的 ACE
icacls D:\Share\D08 /grant xyx115pc-hp\X_Sir:(OI)(CI)(F,GA)
rem 添加管理员,拥有对文件夹的所有权限
icacls D:\Share\D08 /GRANT xyx115pc-hp\testuser:(OI)(CI)(RX,W,WDAC,WO)
rem 添加权限
icacls D:\Share\D08 /DENY xyx115pc-hp\testuser:(OI)(CI)(DE,DC)
rem 禁止删除
注意
      这里看到的(DENY)(D,DC),不能按照(D,DC)照搬设置。必须为(DE,DC)。因为(D)会阻止目录所需的同步权限

允许只读,禁止写入和删除

icacls D:\Share\D09 /inheritance:R /t /c
rem 删除所有继承的 ACE
icacls D:\Share\D09 /grant xyx115pc-hp\X_Sir:(OI)(CI)(F,GA)
rem 添加管理员,拥有对文件夹的所有权限
icacls D:\Share\D09 /grant xyx115pc-hp\testuser:(OI)(CI)(RX,GR,GE,RD,X)
rem 添加指定用户,对文件夹拥有只读、执行权限,无法写入、删除

拒绝任何权限

icacls D:\Share\D08 /DENY xyx115pc-hp\testuser:(OI)(CI)(RX,GA)
rem 拒绝任何权限

拒绝删除权限

icacls D:\Share\D08 /DENY xyx115pc-hp\testuser:(OI)(CI)(DE,DC)

重置NTFS文件夹权限

文件和文件夹权限对 Windows 非常重要。有时,用户可能会弄乱导致软件甚至操作系统以不希望的方式工作的权限。

有一种简单的方法可以解决这类问题而不会让人头疼,使用ICACLS命令。

管理员身份启动命令提示符,并导航(切换)到需要修复的文件夹中。

然后执行命令:ICACLS * /T /Q /C /RESET

ICACLS将重置所有文件夹,文件和子文件夹的权限。一段时间后,根据文件的数量,权限将被修复。

有时,您可能需要获得文件夹树的所有权。您可以在启动 ICACLS 之前使用该命令。takeown /R /F *

请注意,获取系统文件夹的所有权可能会破坏您的操作系统。

错误

/inheritance:r: 文件名…不正确

错误原因:路径错误,目录后面不能带斜杠。如下图所示。

无法将“CI”项识别为 cmdlet…

错误分析:在 Windows PowerShell 中执行 icacls

解决方法:使用批处理(命令提示符)运行icacls,或者在 Windows PowerShell (在windows 11 中,叫做 Windows 终端)中输入cmd,回车。然后执行icacls

在 Windows PowerShell中输入 cmd ,回车,即可切换到 cmd 。

发表评论

Index