如何使用Powershell将两个acces规则添加到同一组的文件夹中

时间:2019-06-05 15:06:13

标签: powershell acl

我需要一个组才能修改(/删除)根文件夹,但是同一组必须能够使用powershell(重复/卷)来修改所有子文件夹和文件

nb。最终结果应为两个ACL规则: 1.一个用于当前文件夹(只读,可以创建子文件夹,可以删除子文件夹,但不能删除根文件夹)。 2.子文件夹和文件的第二条规则,它们可以在其中删除和创建并具有自由范围

我有一系列的powershell代码,分别为这两种情况添加了ACL规则

#subfolder rights
$existingAcl = Get-Acl -Path $pad
$permissions = $rechtendoel,'ExecuteFile,ReadData,ReadAttributes,ReadExtendedAttributes,CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes,DeleteSubdirectoriesAndFiles,Delete,ReadPermissions', 'ContainerInherit,ObjectInherit', 'InheritOnly', 'Allow'
$regel= New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permissions
$existingAcl.SetAccessRule($regel)
$existingAcl | Set-Acl -Path $pad

#rights for just the folder 

$existingAcl2 = Get-Acl -Path $pad
$rechten2 = $rechtendoel,'ExecuteFile,ReadData,ReadAttributes,ReadExtendedAttributes,CreateFiles,AppendData,WriteAttributes,WriteExtendedAttributes,DeleteSubdirectoriesAndFiles,ReadPermissions', 'None', 'None', 'Allow'
$regel2= New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $rechten2
$existingAcl2.SetAccessRule($regel2)
$existingAcl2 | Set-Acl -Path $pad

但是,当我连续运行(或彼此分开)时,后一个运行段会覆盖之前的规则。

1 个答案:

答案 0 :(得分:0)

尝试对子目录中的项目使用这种方法

$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl

参考 https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-acl?view=powershell-6