我刚刚开始学习PowerShell,我一直在尝试使用. FileSystemAccessRule、. AddAccessRule(规则)和最后的Set-ACL向文件夹添加安全组。
我可以遍历acl对象,并发现它们确实与我通过文件夹-〉属性-〉安全选项卡看到的现有(安全)项匹配。
作为我的脚本的一部分,我将确保删除已经分配的安全组(这是为了确保维护适当的安全性和继承性)。
这就是我遇到的问题-为文件夹分配两个组(一个"所有者"组和一个"只读"组)。我的目标是保留所有现有的权限分配,只添加这三个新组及其关联的权限。出现的情况是,在最终的"Set-Acl"执行之后,所有现有组都不再存在。因为尚未向所有者组分配任何人,无法执行进一步的任务(因为我所属的组不再被列为具有访问权限,所以我失去了访问权限)。
#add the 2 groups to the folder
$acl = Get-Acl $folderPath
$acl.SetAccessRuleProtection($True, $False)
#add security group for Owners of this folder and all children
$ruleOwner = New-Object System.Security.AccessControl.FileSystemAccessRule("$domain\$grpOwner","Modify", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($ruleOwner)
#add security group for Read-Only of this folder and all children
$ruleReadOnly = New-Object System.Security.AccessControl.FileSystemAccessRule("$domain\$grpReadOnly","ReadAndExecute", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($ruleReadOnly)
Set-Acl $folderPath $acl
这是否应该删除现有的acl设置并使用新版本(尚未添加现有的组/用户)更新文件夹?我所了解的. AddAccessRule的工作方式是,它确实是附加的,应该不影响其他现有的组。我确实验证了$acl是否存在所有组(在执行Set-Acl cmdlet之前的中断模式下使用不同的窗口)。
谢谢你的建议,我很感激。
1条答案
按热度按时间oug3syen1#
它肯定是$acl. SetAccessRuleProtection。
我发现.SetAccessRuleProtection($false,$false)允许我添加新的安全组(其中2个),同时保留现有的继承安全组/用户。