【问题标题】:PowerShell return collection object as duplicatesPowerShell 将集合对象作为重复项返回
【发布时间】:2017-04-02 11:44:39
【问题描述】:

如果之前有人问过这个问题,我们深表歉意。如果是这样

我有构建组成员对象数组的函数。我可以看到它在函数内部工作正常,但返回对象的成员正好是两倍 - 尝试了 ArrayList ,情况更糟。有人可以解释一下发生了什么......

function Get-MsolGroupMembers
  {


  [CmdletBinding()]
  param
  (
    [Parameter(Mandatory=$true, Position=0)]
    [string]
    $SearchString
  )

  $groups = Get-MsolGroup -SearchString $SearchString -MaxResults 1

  $retObjs = @()

  Write-Host -fore Yellow $groups.Count 'Group(s) found'
  foreach ($group in $groups)  
  { 
    $groupGUID = $group.ObjectId 
    $groupDisplayName = $group.DisplayName 
    $groupEmail = $group.EmailAddress 
    $groupType = $group.GroupType 
    $groupMembers = Get-MsolGroupMember -GroupObjectId $groupGUID  -All


    foreach ($groupMember in $groupMembers)  
    { 
      $Properties = @{"GroupDisplayName"=$groupDisplayName; 
        "GroupEmail"=$grouEmail; 
        "GroupType"=$groupType; 
        "MemberDisplayName"=$groupMember.DisplayName; 
        "MemberEmail"=$groupMember.EmailAddress; 
      "MemberType"=$groupMember.GroupMemberType} 

      $Obj = New-Object -TypeName PSObject -Property $Properties 
      Write-Output $Obj | select GroupDisplayName,GroupEmail,GroupType,MemberDisplayName,MemberEmail,MemberType 

      $retObjs += $Obj
    } 

    return $reObjs; 
  }

}

$members = Get-MsolGroupMembers -SearchString 'My Test Group'
$members.Count

【问题讨论】:

    标签: powershell sharepoint office365


    【解决方案1】:

    当然,这很容易。您将所有内容输出两次。一次使用Write-Output 行,然后再次使用return 行。 PowerShell 函数将任何未特别重定向的内容返回到管道(例如使用Write-HostExport-Csv),因此这两个命令本质上执行相同的操作,这就是您的加倍的来源。删除一个或另一个,你就准备好了。

    【讨论】:

    • 谢谢我可以删除尾随返回但仍将我的集合传回调用脚本。
    • 是的,集合在函数输出时无论如何都会展开,所以无论你怎么做都没有区别。
    • 谢谢,我有点困惑,因为我认为 write-object 只是处理每个对象的内部填充。谢谢指正
    • @westerdaled 很高兴它有效,显示认可并告诉可能有相同问题的其他人此答案很好的最佳方式是通过单击答案中的复选标记来接受它:)跨度>
    猜你喜欢
    • 1970-01-01
    • 2019-02-01
    • 2021-10-02
    • 2021-04-24
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    相关资源
    最近更新 更多