1
これまでに尋ねられたことがありましたら、お詫び申し上げます。その場合PowerShellでコレクションオブジェクトが重複して返される
私はグループメンバーのオブジェクト配列を構築する関数を持っています。私はそれが関数内で正常に動作することがわかりますが、返すオブジェクトは、正確にメンバーの2倍です - 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
ありがとうございます。後の返品は削除できますが、引き続き呼び出し元のスクリプトにコレクションを渡します。 – westerdaled
はい、関数が出力するとコレクションは展開されますので、どちらの方法でも違いはありません。 – TheMadTechnician
ありがとう、私は書き込みオブジェクトが各オブジェクトの内部の人口をちょうど処理したと思ったので少し混乱しました。 – westerdaled