Powershell将函数应用于列表的每个成员

Powershell将函数应用于列表的每个成员,powershell,Powershell,我有一个文件夹的权限列表,我想测试此列表中的每个IdentityReference是否存在于由IdentityReference组成的另一个列表中,如果它匹配,则不执行任何操作,否则删除此IdentityReference的权限 简单地说,以上只是描述我的目标,我已经有了一个工作代码,但问题是它只有10行,我想用最少的行数来完成这一切 $perm = $acl.Access | select IdentityReference, FileSystemRights | where {$_.Iden

我有一个文件夹的权限列表,我想测试此列表中的每个IdentityReference是否存在于由IdentityReference组成的另一个列表中,如果它匹配,则不执行任何操作,否则删除此IdentityReference的权限

简单地说,以上只是描述我的目标,我已经有了一个工作代码,但问题是它只有10行,我想用最少的行数来完成这一切

$perm = $acl.Access | select IdentityReference, FileSystemRights | where {$_.IdentityReference -notin @("BUILTIN\Administrators", "NT AUTHORITY\SYSTEM")}
现在我必须对$perm中的每个IdentityReference应用一个用户定义的函数,这可以在一行中完成所有操作吗?

试试这个

$perm = $acl.Access | select IdentityReference, FileSystemRights | where {$_.IdentityReference -notin @("BUILTIN\Administrators", "NT AUTHORITY\SYSTEM")}
$perm | %{yourfunction $_.IdentityReference}
还是在同一条线上

$acl.Access | select IdentityReference, FileSystemRights | where {$_.IdentityReference -notin @("BUILTIN\Administrators", "NT AUTHORITY\SYSTEM")} | %{yourfunction $_.IdentityReference}

foreach($a in$perm){bla bla}
你能给我们举个例子说明你想用它做什么吗?我的意思是,这取决于您所拥有的用例,您是可以将结果通过管道传递给它,还是必须对其进行迭代。