Get-Acl/Set-Acl
может быть королевской болью, если вы не являетесь владельцем объекта, с которым вы пытаетесь изменить права доступа, даже если вы являетесь администратором. Если вы хотите изменить ACL на объекте, которому вы не являетесь, вы должны включить для вашей личности/учетной записи SeBackupPrivilege. Единственный простой способ изменить системные привилегии - установить Расширения сообщества PowerShell и использовать Get/Set-Privilege
. Я действительно не понимаю, почему это ограничение существует, но это так.
С учетом этого, используя icacls
, очень хорошо работает в большинстве случаев. Существует ошибка, если вы устанавливаете разрешения для каталога, доступ к которому осуществляется через общий ресурс с включенным переходом на основе доступа. Все это делают правильно? ;)
Прикосновение к каталогу под управляемым общим доступом ABE с icacls приводит к исчезновению каталога, даже если у вас все еще есть разрешения для этого каталога. Если вы используете редактор ACL проводника Windows для чтения и (повторного) применения разрешений, установленных с помощью icacls, каталог снова отображается.
После того, как большая царапина в голове была определена, что icacls что-то делал с синхронизировать бит. Без synchronize ABE заставляет каталог быть невидимым. Простейшим обходным решением было бы не использовать ABE, но в нашей среде отключение ABE не является вариантом.
Другим решением является использование SetACL.exe
, которое вы можете скачать из SourceForge. У него очень сложный синтаксис imho, но он действительно мощный. Он также доступен как OCX, поэтому вы можете его запускать через PowerShell.
спасибо keith, get-acl/set-scl is pita, даст, что я попробую – Iain