Скрипт для поддерживания и назначения прав на папки. Например, у нас есть такая структура папок:

D:\Клиенты\
D:\Клиенты\Ромашка
D:\Клиенты\Справка

И стоит следующая задача:

    “D:\Клиенты” удалить стандартные права для пользователей домена
    “D:\Клиенты\Ромашка” дать полные права группе flora
    “D:\Клиенты\Ромашка” дать права на чтение пользователю secretary
    “D:\Клиенты\Справка” дать полные права для пользователя secretary
    “D:\Клиенты\Справка” дать права на чтения для группы flora

для этого создаем файлик acl.csv в кодировке UTF-8 следующего содержания:
[text]
Folder;SecIdentity;AccessRights;AccessControlType;BlockInherit
D:\Клиенты;BUILTIN\Users;Remove;;Yes
D:\Клиенты\Ромашка;Domain Name\flora;FullControl;Allow;
D:\Клиенты\Ромашка;Domain Name\flora;ReadAndExecute;Allow;
D:\Клиенты\Справка;Domain Name\secretary;FullControl;Allow;
D:\Клиенты\Справка;Domain Name\secretary;ReadAndExecute;Allow;
[/text]

и запускаем с админским правами скрипт
[powershell]
ntl-Set-Acl.ps1 -FolderListFile .\acl.csv
[/powershell]

Сначала опишу формат файла.

    Folder – в этом поле просто имя файла/папки
    SecIdentity – доменный/локальный аккаунт группы или пользователя
    AccessRights – может принимать по одному или через запятую следующие значения FullControl, Read, ReadAndExecute и т.д. Полный список по одной из ссылок в конце статьи. Кроме того в этом поле можно указать значение Remove и тогда это даст команду удалить из ACL папки или файла аккаунт, указанный в поле SecIdentity
    AccessControlType – значения Allow или Deny. Игнорируется, если поле AccessRights имеет значение Remove.
    BlockInherit – Если стоит значение Yes, то перед тем, как добавить/удалить права, для папки Folder отключается применение прав от родителя с сохранением текущих настроек. В основном это нужно, когда удаляешь права. Например, для того что убрать дефолтные разрешения для доменных пользователей. Для добавления прав, обычно не нужно блокировать наследование.

Правила заполнения файла:

    Папки верхнего уровня надо указывать раньше
    Для стандартных групп(Administrators,Users) и пользователей(Administrator) надо указывать BUILTIN\Users, а не Domain Name\Users

Как работает скрипт.

Если просто, то ACL(Access Control List) – это все права на папку, а ACE(Access Control Entry) – это одна запись, например, пользователь Вася имеет полные права на эту папку. Таким образом, в ACL входит кучка ACE. Кроме этого в ACL хранятся настройки наследования, владелец, группа и т.д.