PowerShell设置/获取ACL特殊权限 - 此文件夹仅设置

时间:2015-08-20 11:40:38

标签: powershell ntfs

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

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允许修改,同步

     

RISK \ DL-GPA-UKI-Users允许AppendData,Synchronize

     

RISK \ DL-GPA-UKI-Users允许CreateFiles,同步

     

NT AUTHORITY \ SYSTEM允许FullControl

     

RISK \ Domain Admins允许FullControl

     

RISK \ DL-GPA-UKI-Readonly允许ReadAndExecute,同步

     

RISK \ svcGIECSSPrd_EA允许FullControl

     

RISK \ DL-GPA-UKI-Users允许ReadAndExecute,Synchronize

     

RISK \ DL-GPA-AIMSSOPS允许FullControl

您可以看到它没有显示“仅此文件夹”或“仅子文件夹和文件”设置...

PowerShell可以实现吗?

非常感谢提前

克里斯

1 个答案:

答案 0 :(得分:0)

绝对。 Get-Acl的默认输出不包含继承信息,但它包含在内。试试这个以获得更友好的输出:

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

至于根据需要设置ACL,您的脚本应该这样做,尽管规则中有一个错误。对于"创建文件/写入数据"要应用于"仅限子文件夹和文件",您需要将PropagationFlags设置为InheritOnly而不是None。

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

这将设置"创建文件夹/附加数据"仅限此文件夹:

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