0

なぜこれがうまくいくのか、教えてください:

Get-DistributionGroup -Filter {DisplayName -like "*Name*"} |
  fl Displayname, PrimarySMTPAddress, @{Label = "Members"; expression = {
    Get-DistributionGroupMember $_.Identity |
      select -ExpandProperty PrimarySmtpAddress
  }}

そして、それはしません:

Get-DistributionGroup -Filter {DisplayName -like "*Name*"} |
  fl Displayname, PrimarySMTPAddress, @{Label = "Members"; expression = {
    (Get-DistributionGroupMember $_.Identity).PrimarySmtpAddress
  }} 
4

2 に答える 2

0

返されるメンバーの数によって異なります (結果が 1 つのオブジェクト長の場合、2 番目のコマンドが機能します)。

最初のコマンドは、すべてのグループ メンバーを展開する select-object に結果をパイプします (メンバー コレクションが展開され、各メンバーが一度に 1 つずつ select-object にパイプされます)。

2 番目のコマンドは、メンバーのコレクションを取得し、各メンバーのアドレスではなく、コレクション自体のプライマリ アドレスを表示するように求められます。これは、コレクションに PrimarySmtpAddress プロパティがない原因にはなりません。

2 番目のコマンドを機能させるには、最初に Foreach-Object にパイプする必要があります。

... @{Label = "Members"; expression = {(Get-DistributionGroupMember $_.Identity | Foreach-Object {$_.PrimarySmtpAddress}}
于 2013-06-01T16:15:15.103 に答える