$foo
有一个包含50个用户ID的列表。
$foo | foreach {
Get-MailboxFolderPermission -Identity ($_.alias + ":\calendar")
} | select user,accessrights
如何在$foo
中选择用户ID,然后在同一行中同时拥有user
,accessrights
?上面得到的命令只是在$foo
中列出了用户ID的用户和访问权限,但从来没有列出实际的用户ID,因此我无法确定哪个用户ID与该用户ID的日历的访问权限匹配。
答案 0 :(得分:2)
使用正确的foreach
循环并使用calculated property获取循环内的用户ID:
foreach($id in $foo)
{
Get-MailboxFolderPermission -Identity ($id.alias + ":\calendar") | Select-Object User,AccessRights,@{Name='UserID';Expression={$id}}
}
使用foreach
循环而不是ForEach-Object
cmdlet的原因是$_
表达式块中的Select-Object
不再引用原始$foo
} element,但是来自Get-MailboxFolderPermission
的当前项目。通过将当前$foo
元素作为整个循环体内的命名变量($id
),我们仍然可以从Select-Object
引用它。