【发布时间】:2015-06-28 13:43:43
【问题描述】:
我正在尝试创建一个设置 ACL 权限的函数,所有来自 XML 的数据都是字符串,但继承部分有问题。使用此代码...
$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)
当只使用一个继承标志时一切正常,但当 $inheritance = "ContainerInherit,ObjectInherit" 时它会失败。 $rights 的构建方式相同,但我的理解是,无论出于何种原因,继承(和传播?)的行为方式都不相同。 几年前我发现了this thread,但我没有看到基于 -bor 的解决方案在哪里允许任何基于字符串的输入。事实上,我根本不理解它,因为似乎 $is 只是被设置为一个枚举,它当然包含设置了 $flag 的两个枚举。 无论如何,希望有人能提供我自己的代码所需的功能,或许还能让我了解链接解决方案中真正发生的事情。
【问题讨论】:
标签: powershell permissions acl