请你告诉我,为什么这样做:
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
}}
答案 0 :(得分:0)
最好是更详细地描述问题而不是“不工作” - 如果有错误信息,请给出。如果你得到意想不到的结果,请描述你的期望和你得到的结果。
Get-DistributionGroupMember $_.Identity | select -ExpandProperty PrimarySmtpAddress
返回一个字符串。
(Get-DistributionGroupMember $_.Identity).PrimarySmtpAddress
返回一个对象。
答案 1 :(得分:0)
这取决于你获得多少成员(如果结果是一个对象长,则第二个命令将起作用)。
第一个命令将结果传递给select-object,后者扩展所有组成员(成员集合展开,每个成员通过管道传递给select-object,一次一个)。
第二个命令获取成员集合,并被要求显示集合本身的主要地址,而不是每个成员的地址,这导致集合没有PrimarySmtpAddress属性
要使第二个命令工作,您需要先管道到Foreach-Object:
... @{Label = "Members"; expression = {(Get-DistributionGroupMember $_.Identity | Foreach-Object {$_.PrimarySmtpAddress}}