【问题标题】:How to add permission entry with condition?如何添加带条件的权限条目?
【发布时间】:2023-03-23 13:50:02
【问题描述】:
对于 Windows 文件夹,可以输入高级安全设置。在 Windows 2016 中有框架“添加条件以限制访问。只有在满足条件时,主体才会被授予指定的权限。”
可以添加项目(= 安全组),基本上是选择一个或多个 AD 安全组(当没有进一步安装动态访问控制 (DAC) 时。
问题是,我们如何在 C#(或 powershell)中使用两个 AD 安全组添加(和删除)这样的条件。
【问题讨论】:
标签:
c#
.net
windows
permissions
ntfs
【解决方案1】:
一个很老的问题,但以防万一有人仍然在谷歌上寻找答案。屏幕截图中的访问规则似乎是对常规 ACL 的一种扩展。
我发现修改它的唯一方法是通过 SDDL。
- 获取 ACL 对象:
$acl = Get-Acl -Path $FolderPath
- 获取当前 SDDL 字符串:
$acl.Sddl
- 使用这样的条件规则扩展现有条目(注意
X、0x1301bf 和 ;(Member_of_any {SID(S-1-5-21-XXX-XXX-XXX-1619)}) 部分)。
(A;OICI;FA;;;S-1-5-21-XXX-XXX-XXX-1113)
(XA;OICI;0x1301bf;;;S-1-5-21-XXX-XXX-XXX-1113;(Member_of_any {SID(S-1-5-21-XXX-XXX-XXX-1619)}))
可以通过检查来自 GUI 制作的对象的不同 SDDL 来了解更多示例。
- 修改$acl对象:
$acl.SetSecurityDescriptorSddlForm($NewSddl)
- 重新应用到文件夹:
Set-Acl -Path $FolderPath -AclObject $acl