从 Windows 中的文件系统 ACL 中删除无效的 SID

从 Windows 中的文件系统 ACL 中删除无效的 SID

是否有一种自动化的方法来遍历文件系统并在任何具有 NTFS 的 Windows 版本中删除引用无效 SID 的任何 ACL 条目?

答案1

icacls 可以做到这一点:

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

    /remove[:[g|d]] Sid removes all occurrences of Sid in the ACL. With
    :g, it removes all occurrences of granted rights to that Sid. With
    :d, it removes all occurrences of denied rights to that Sid.

您还可以检查不良条目:

ICACLS 名称 /verify [/T] [/C] [/L] [/Q] 查找所有 ACL 不是规范形式或长度与 ACE 计数不一致的文件。

答案2

也许是因为我在 2003 服务器上运行它,但它并没有产生对我有用的结果。

ICACLS 名称 /verify [/T] [/C] [/L] [/Q] 查找所有 ACL 不是规范形式或长度与 ACE 计数不一致的文件。

我不确定它应该做什么,但它没有为我提供任何有用的东西。我有一个 SID 未知的文件夹。

加拿大临床神经外科学会文件夹名称

返回 ACL 条目,包括“未完成帐户名称和安全 ID 之间的映射”。它没有告诉我无法获得哪个 SID 的映射。

加拿大临床神经外科学会文件夹名称/核实

所有这些告诉我的是:“成功处理 1 个文件;处理 0 个文件失败”。听起来很棒,但是处理的结果是什么呢?

我对文件夹中的任何单个文件运行此方法也得到了完全相同的结果。为了删除 SID,您需要知道它们是什么。而且这对于获取需要清理的 SID 列表来说并不是一个非常有用的方法。

答案3

也许 ICACLS 没有标记我所说的孤立的 SID这些文件来自受信任的域,但用户 ID 或组已被删除。因此,当您在 Explorer 的文件属性中查看“安全”选项卡时,您只会看到一个 SID,并且它不会解析为用户/组的可读名称。无论如何,我都帮不上忙;我不知道有没有自动化的方法可以批量删除这些文件。

编辑:好吧,也许如果你很热心,你可以使用 ICACLS 输出,获取孤儿,编写脚本,测试,然后进行更多测试......

相关内容