2016-12-16 28 views
-3

我有一个文件夹的权限列表,我想测试此列表中的每个IdentityReference是否存在于由IdentityReferences组成的另一个列表中,如果它匹配什么也不做,否则移除权限为此IdentityReference。以上只是描述我所要做的事情,我已经有了一个工作代码,但问题是它是10行,我想用最少的行数来完成。Powershell将函数应用于列表中的每个成员

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

现在我需要去申请定义函数在$烫发各的IdentityReference用户,这是可以做到所有在同一行?

+1

'的foreach($ A在$烫发){喇嘛喇嘛}' – 4c74356b41

+0

你能不能给我们举个例子,你想要什么用它做?我的意思是这取决于你是否可以将结果传递给它,或者你必须遍历它。 –

回答

2

试试这个

$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} 
相关问题