基本上,我要做的是将txt文件推送到远程PC列表中,然后更改该文件的权限,以使本地用户组只能读取和执行。 (我放弃了尝试在保留权限的同时将文件推出)。 PC名称在firstObject
文件的不同行中列出。
这是我所拥有的:
ComputerNames.txt
似乎正在复制文件,并且权限得到了重置,但它并未删除任何内容,用户仍然具有写权限和特殊权限。我在这里做什么错了?
答案 0 :(得分:0)
/grant:r
只会替换给定用户或组的现有显式权限。它不涉及继承的权限。对象继承(OI)和容器继承(CI)仅在处理文件夹时才有意义。什么都不会从文件继承权限。另外,仅禁用继承(/inheritance:d
)还是不够的,您还需要删除现有权限(/inheritance:r
)。
这应该做您想要的:
icacls \\$computer\C$\HOMEWARE\newFile.txt /reset
icacls \\$computer\C$\HOMEWARE\newFile.txt /inheritance:r /grant "Users:rx"
请注意,这将从文件中删除 all 继承的权限,这可能会禁止备份和其他系统管理操作。正如eryksun在评论中指出的那样,最好先禁用继承(将继承的权限转换为显式权限),然后替换User ACE。
icacls \\$computer\C$\HOMEWARE\newFile.txt /reset
icacls \\$computer\C$\HOMEWARE\newFile.txt /inheritance:d /grant:r "Users:rx"
如果您仍然希望删除继承的权限,而不是转换为显式权限,我强烈建议您另外为管理员和SYSTEM授予访问权限。
icacls \\$computer\C$\HOMEWARE\newFile.txt /reset
icacls \\$computer\C$\HOMEWARE\newFile.txt /inheritance:r /grant "Users:rx" "Administrators:f" "system:f"