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

Разрешения пользователей, добавленные с помощью set-acl, не наследуются для файлов и подпапок

Я написал два сценария PowerShell. У пользователя спрашивают имя папки. Он создает папку с этим именем, дает пользователю полный контроль, предоставляет полный контроль группе администраторов и лишает унаследованные права, оставляя только пользователя и администраторов. Второй сценарий запрашивает имя пользователя и дает ему права на изменение в новой папке.

Он работает так, как задумано, за исключением одного: когда я создаю файл или папку во вновь созданной папке, они не наследуют эти права. Я посмотрел на вкладку безопасности, нажал «Дополнительно» и «Редактировать» (в учетных записях) и обнаружил 2 вещи, которые мне не нужны:

Добавление учетных записей вращается вокруг этих строк:

$Acl = Get-Acl $Folderpath
$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account,"FullControl","Allow")
$Acl.Setaccessrule($Ar)
Set-Acl $Folderpath $Acl

$Folderpath - установленная ранее переменная, указывающая на папку. $user_account - это установленная ранее переменная, содержащая имя учетной записи пользователя.

Мой вопрос:

Есть ли способ правильно добавить эти учетные записи в разрешения папки (права будут унаследованы, у пользователя есть права на удаление) или исправить это впоследствии в сценарии?

Требуется больше флагов наследования; конструктор, который вы используете для создания ACE, передавая только три аргумента, не указывает, как ACE должен наследовать.

Попробуй это:

$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")