Я написал два сценария 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")