Как добавить два правила доступа в папку для одной группы с помощью powershell - PullRequest
0 голосов
/ 05 июня 2019

Мне нужна группа, чтобы не иметь возможности изменять (/ удалять) корневую папку, но эта же группа должна иметь возможность изменять все подпапки и файлы, используя powershell (повтор / том)

пь. Конечным результатом должно быть два правила acl: 1. один для текущей папки (только для чтения, может создавать подпапки, может удалять подпапки, но не может удалять корневую папку). 2. второе правило для подпапок и файлов, в котором они могут удалять и создавать и имеют свободный диапазон более

У меня есть серия кодов powershell, которая добавляет правило ACL для обеих ситуаций (отдельно)

#subfolder rights
$existingAcl = Get-Acl -Path $pad
$permissions = $rechtendoel,'ExecuteFile,ReadData,ReadAttributes,ReadExtendedAttributes,CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes,DeleteSubdirectoriesAndFiles,Delete,ReadPermissions', 'ContainerInherit,ObjectInherit', 'InheritOnly', 'Allow'
$regel= New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permissions
$existingAcl.SetAccessRule($regel)
$existingAcl | Set-Acl -Path $pad

#rights for just the folder 

$existingAcl2 = Get-Acl -Path $pad
$rechten2 = $rechtendoel,'ExecuteFile,ReadData,ReadAttributes,ReadExtendedAttributes,CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes,DeleteSubdirectoriesAndFiles,ReadPermissions', 'None', 'None', 'Allow'
$regel2= New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $rechten2
$existingAcl2.SetAccessRule($regel2)
$existingAcl2 | Set-Acl -Path $pad

Однако, когда я запускаю оба подряд (или отдельно друг от друга), последний сегмент запуска перезаписывает предыдущее правило.

1 Ответ

0 голосов
/ 05 июня 2019

Попробуйте использовать этот тип метода для элементов в подкаталогах

$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl

Ссылка https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-acl?view=powershell-6

...