PowerShell Set/Get-ACL 特殊权限 - 仅限此文件夹设置

PowerShell Set/Get-ACL Special Permissions - This Folder Only setting

我有这个设置文件夹权限的脚本:

Get-Acl $IGXYSimFiles 
$acl = Get-Acl $IGXYSimFiles
$acl.SetAccessRuleProtection($false,$true)
$rule = New-Object
System.Security.AccessControl.FileSystemAccessRule("RISK\DL-GPA-UKI-Users","CreateFiles", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
$rule = New-Object
System.Security.AccessControl.FileSystemAccessRule("RISK\DL-GPA-UKI-Igloo-IGXY-Power-Users","Modify", "ContainerInherit, ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
Set-Acl $IGXYSimFiles $acl

我需要为 DL-GPA-UKI-Users 组添加特殊权限,以便他们可以在 $IGXYSimFiles 文件夹中创建子文件夹,但不能创建文件。他们需要能够在允许创建的子文件夹中创建文件,但不能在任何其他子文件夹中创建文件。

我通过为“仅此文件夹”设置特殊权限“创建文件夹/附加数据”和为“仅子文件夹和文件”设置“创建文件/写入数据”来实现这一点。这工作得很好,但现在是我需要编辑我的脚本来执行此操作的时候了。

所以我想我会在我手动设置这些权限的文件夹上获取 acl,这没有返回所需的结果:

AccessToString :

RISK\DL-GPA-UKI-Igloo-IGXY-Power-Users Allow Modify,Synchronize

RISK\DL-GPA-UKI-Users Allow AppendData, Synchronize

RISK\DL-GPA-UKI-Users Allow CreateFiles, Synchronize

NT AUTHORITY\SYSTEM Allow FullControl

RISK\Domain Admins Allow FullControl

RISK\DL-GPA-UKI-Readonly Allow ReadAndExecute, Synchronize

RISK\svcGIECSSPrd_EA Allow FullControl

RISK\DL-GPA-UKI-Users Allow ReadAndExecute, Synchronize

RISK\DL-GPA-AIMSSOPS Allow FullControl

如您所见,它没有显示“仅此文件夹”或“仅子文件夹和文件”设置...

这可以用 PowerShell 实现吗?

非常感谢

克里斯

当然可以。 Get-Acl 的默认输出不包括继承信息,但它在那里。试试这个以获得更友好的输出:

Get-ACL $IGXYSimFiles | % { $_.Access }

至于根据需要设置 ACL,您的脚本应该可以做到,尽管您的规则中有一个错误。要将 "Create Files / Write Data" 应用于 "Subfolders and Files Only",您需要将 PropagationFlags 设置为 InheritOnly 而不是 None。

$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("RISK\DL-GPA-UKI-Users","CreateFiles", "ContainerInherit, ObjectInherit", "InheritOnly", "Allow")

这将仅在此文件夹上设置 "Create Folder / Append Data":

$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("RISK\DL-GPA-UKI-Users","AppendData", "None", "None", "Allow")