我想修改特定文件夹的ACL。为此,我需要删除继承的FileSystemAccessRules
,并将其更改为ReadAndExecute
权限。为此,我决定使用ModifyAccessRule()
方法。
我的问题是我需要使用ModifyAccessRule
方法,并且作为构造函数的一部分,我需要一个FileSystemAccessRule
对象来获取相同的输入。
我知道这可以通过不使用管道来简单地解决,但我试图保持它在一个内部有效,因此为什么没有使用外部变量(除了初始路径)。
Get-Item $folder_path |
%{$_.GetAccessControl()} |
%{$_.ModifyAccessRule(
"Add",
New-Object System.Security.AccessControl.FileSystemAccessRule(
$_.Access.IdentityReference,
[System.Security.AccessControl.FileSystemRights]::ReadAndExecute,
[System.Security.AccessControl.InheritanceFlags]::ContainerInherit,
[System.Security.AccessControl.PropagationFlags]::None,
[System.Security.AccessControl.AccessControlType]::Allow
)
)}
这是我目前的代码,但由于New-Object
无法在构造函数中执行,因此无效。我搜索了可能的替代品,但没有找到任何东西。但是,如您所见,这个新对象所需的所有部分都可用。
我可以使用某种格式或方法在另一个对象的构造函数中创建这个FileSystemAccessRule
对象吗?
PS:作为奖励,任何人都可以确认PropagationFlags
和InheritanceFlags
处于正确的值,该文件夹不会继承父权限但会传播给子级吗? ^ - ^