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")
我有这个设置文件夹权限的脚本:
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")