在另一个对象的构造函数中创建一个对象

时间:2017-08-04 03:00:17

标签: powershell acl pipeline

我想修改特定文件夹的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:作为奖励,任何人都可以确认PropagationFlagsInheritanceFlags处于正确的值,该文件夹不会继承父权限但会传播给子级吗? ^ - ^

0 个答案:

没有答案