日期:2014-05-17  浏览次数:21058 次

(转)Windows下的权限更改脚本

iCacls是什么想必还不知道吧。iCacls可以实现查看及设置文件的访问控制表(ACL)的功能,如在移动用户文件夹后无法收藏问题的解决中的应用。
ICACLS name /save aclfile [/T] [/C] [/L] [/Q]
将所有匹配名称的 ACL 存储到 aclfile 中以便将来用于 /restore。

ICACLS directory [/substitute SidOld SidNew [...]] /restore aclfile
[/C] [/L] [/Q]
将存储的 ACL 应用于目录中的文件。

ICACLS name /setowner user [/T] [/C] [/L] [/Q]
更改所有匹配名称的所有者。

ICACLS name /findsid Sid [/T] [/C] [/L] [/Q]
查找包含显式提及 SID 的 ACL 的所有匹配名称。

ICACLS name /verify [/T] [/C] [/L] [/Q]
查找 ACL 不标准或长度与 ACE 计数不一致的所有文件。

ICACLS name /reset [/T] [/C] [/L] [/Q]
为所有匹配文件使用默认继承的 ACL 替换 ACL

ICACLS name [/grant[:r] Sid:perm[...]]
[/deny Sid:perm [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L]
[/setintegritylevel Level:policy[...]]

/grant[:r] Sid:perm 授予指定用户访问权限。使用 :r,
该权限将替换以前授予的所有显式权限。
不使用 :r,该权限将添加到以前授予的所有显式权限。

/deny Sid:perm 显式拒绝指定的用户访问权限。
已经为规定的权限添加了显式拒绝 ACE,
删除所有显式授予的权限中的相同权限。

/remove[:[g|d]] Sid 删除 ACL 中所有出现的 SID。使用
:g,删除授予该 SID 的所有权限。使用
:d,删除拒绝该 SID 的所有权限。

/setintegritylevel [(CI)(OI)] 级别将完整性 ACE 显式添加到所有
匹配文件。要指定的级别为以下级别之一:
L[ow]
M[edium]
H[igh]
完整性 ACE 的继承选项可以优先于级别,但只应用于
目录。

提示你注意:
Sids 可能是数字格式或友好的名称格式。如果给定数字格式,那么请在 SID 的开头添加一个 *。

/T 指示在以该名称指定的目录下的所有匹配文件/目录上 执行此操作。

/C 指示该操作将在所有文件错误上继续。仍将显示错误消息。

/L 指示此操作在符号链接本身而不是其目标上执行。

/Q 表示 icacls 应该压制成功的消息。

ICACLS 保留 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 - 写入属性
继承权限可以优先于每种格式,但只应用于
目录:
(OI) - 对象继承
(CI) - 容器继承
(IO) - 仅继承
(NP) - 不传播继承

示例:

icacls c:\windows\* /save AclFile /T
- 将 c:\windows 及其子目录下所有文件的 ACL 保存到 AclFile。

icacls c:\windows\ /restore AclFile
- 将还原 c:\windows 及其子目录下存在的 AclFile 内所有文件的 ACL

icacls file /grant Administrator:(D,WDAC)
- 将授予用户对文件删除和写入 DAC 的管 理员权限

icacls file /grant *S-1-1-0:(D,WDAC)
- 将授予由 sid S-1-1-0 定义的用户对文件删 除和写入 DAC 的权限

deep试验效果如下。管理员运行命令提示符:icacls c:\windows\* /save AclFile /T

很快就将将 c:\windows 及其子目录下所有文件的 ACL 保存到 AclFile。