Я пытаюсь создать функцию, которая будет устанавливать разрешения ACL, со всеми данными, поступающими из XML в виде строк, и я беспокоюсь с частью Наследования. с этим кодом ...Права ACL, множественное наследование от строкового значения
$workingPermissions = Get-Acl $target
$acRights = [System.Security.AccessControl.FileSystemRights]$rights
$acInheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::$inheritance
$acPropagationFlag = [System.Security.AccessControl.PropagationFlags]::$propagation
$acType =[System.Security.AccessControl.AccessControlType]::Allow
$acUser = New-Object System.Security.Principal.NTAccount($principal)
$acEntry = New-Object System.Security.AccessControl.FileSystemAccessRule ($acUser, $acRights, $acInheritanceFlag, $acPropagationFlag, $acType)
все отлично работает, когда используется только один флаг наследования, но когда $ Наследование = «ContainerInherit, ObjectInherit» он выходит из строя. $ права построены таким же образом, но я понимаю, что по какой-либо причине Наследование (и распространение?) не ведет себя одинаково. Я нашел this thread с нескольких лет назад, и я не вижу, где решение на основе -bor позволит использовать любой ввод на основе строки. В самом деле, я вообще не понимаю его, поскольку, как представляется, $ is просто устанавливается на перечисление, которое, конечно же, содержит оба перечисления, в которых установлен флаг $. В любом случае, надеясь, что кто-то сможет обеспечить свой собственный кодекс и, возможно, подскажет мне, что действительно происходит в связанном решении.
Dang, как если бы я пропустил, что он принимает массив. Конечно, почему на самом деле права работают со строкой, но Inheritance требует массив? В любом случае ... с небольшим -replace и .split, у меня есть моя удобочитаемая строка для преобразования в массив, и я ухожу на гонки. Благодаря! – Gordon