【问题标题】:Select from 2 Arrays in a Foreach从 Foreach 中的 2 个数组中选择
【发布时间】:2016-09-15 16:32:54
【问题描述】:

$foo 有一个包含 50 个用户 ID 的列表。

$foo | foreach {
  Get-MailboxFolderPermission -Identity ($_.alias + ":\calendar") 
} | select user,accessrights

如何在$foo 中选择用户ID,然后在同一行中同时拥有useraccessrights?上面生成的命令只列出了$foo 中用户 ID 的用户和访问权限,但没有列出实际的用户 ID,所以我无法判断哪个用户 ID 与哪个用户匹配,以及该用户 ID 日历的访问权限。

【问题讨论】:

    标签: powershell exchange-server


    【解决方案1】:

    使用正确的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 元素,而是引用管道中的当前项来自Get-MailboxFolderPermission。通过让当前的$foo 元素成为整个循环体内的命名变量($id),我们仍然可以从Select-Object 引用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2012-06-10
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多