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

最好比“不起作用”更详细地描述问题 - 如果有错误消息,请给出。如果您得到意想不到的结果,请描述您的预期和得到的结果。

Get-DistributionGroupMember $_.Identity | select -ExpandProperty PrimarySmtpAddress返回一个字符串。

(Get-DistributionGroupMember $_.Identity).PrimarySmtpAddress返回一个对象。

于 2013-06-01T16:11:23.830 回答
0

这取决于您返回多少成员(如果结果是一个对象长,则第二个命令将起作用)。

第一个命令将结果通过管道传输到扩展所有组成员的 select-object(成员集合展开,每个成员通过管道传输到 select-object,一次一个)。

第二个命令获取成员集合并被要求显示集合本身的主地址,而不是每个成员的地址,这不会导致集合没有 PrimarySmtpAddress 属性。

要使第二个命令起作用,您需要先通过管道传输到 Foreach-Object:

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