Назад | Перейти на главную страницу

Удалите недопустимые SID из списков ACL файловой системы в Windows

Есть ли автоматический способ обхода файловой системы и удаления любых записей ACL, которые ссылаются на недопустимые идентификаторы безопасности в любой версии Windows с NTFS?

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 name / verify [/ T] [/ C] [/ L] [/ Q] находит все файлы, ACL которых не соответствует канонической форме или длина которых несовместима с счетчиком ACE.

Может быть, это потому, что я запускаю это на сервере 2003, но это не дает мне полезных результатов.

ICACLS name / verify [/ T] [/ C] [/ L] [/ Q] находит все файлы, ACL которых не соответствует канонической форме или длина которых несовместима с счетчиком ACE.

Я не уверен, что это должно делать, но ничего полезного для меня это не дает. У меня есть папка с неизвестным SID.

ICACLS имя папки

возвращает записи ACL, включая «Не было выполнено сопоставление между именами учетных записей и идентификаторами безопасности». Он не сообщает мне, для какого SID не удалось получить сопоставление.

ICACLS имя папки / проверить

Все это говорит мне: «Успешно обработан 1 файл; Не удалось обработать 0 файлов». Звучит здорово, но каков был результат обработки?

Я получаю точно такие же результаты, выполняя это для любых отдельных файлов в папке. Чтобы удалить идентификаторы безопасности, вам необходимо знать, что они собой представляют. И это не очень полезный метод получения списка идентификаторов безопасности, которые нужно очистить.