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