Powershell 如何通过多个管道传递对象/值?

Powershell 如何通过多个管道传递对象/值?,powershell,pipeline,Powershell,Pipeline,Get Mailbox username获取用户的“Displayname”。 获取邮箱区域配置获取更多信息 我想用 PS> Get-Mailbox username | Get-MailboxRegionalConfiguration Identity Language DateFormat TimeFormat TimeZone -------- -------- ---------- ---------- ---

Get Mailbox username
获取用户的“Displayname”。
获取邮箱区域配置
获取更多信息

我想用

PS> Get-Mailbox username | Get-MailboxRegionalConfiguration Identity Language DateFormat TimeFormat TimeZone -------- -------- ---------- ---------- -------- en-US M/d/yyyy h:mm tt W. Europe Standard Time
您可以这样做,使用附加信息从
Get-MailboxRegionalConfiguration
扩展对象:

Get-Mailbox -ResultSize Unlimited | ForEach-Object {
    $name = $_.DisplayName
    $_ | Get-MailboxRegionalConfiguration |
        Select-Object *,@{n='DisplayName',e={$name}}
}

您可以这样做,使用附加信息从
Get-MailboxRegionalConfiguration
扩展对象:

Get-Mailbox -ResultSize Unlimited | ForEach-Object {
    $name = $_.DisplayName
    $_ | Get-MailboxRegionalConfiguration |
        Select-Object *,@{n='DisplayName',e={$name}}
}

我的理解是,以这种方式使用的
Select Object
不会像
Add Member
那样“扩展”对象。相反,它使用列出的道具创建一个新对象。哪一个是正确的?@Lee_Dailey我的意思不是严格意义上的“扩展”
Select Object
显然会创建一个新对象(因为类型更改为
PSCustomObject
)。是的,但这对新手来说是显而易见的吗?我曾经和一些人打过交道,他们对
Select Object
works的各种方式一无所知。。。有时传递原始对象,有时生成新对象—所有这些都取决于您使用的参数。@Lee_Dailey他们可能不知道。但更重要的问题是:这对他们有影响吗?在大多数情况下,我认为后一个问题的答案是“不”。我明白你的意思。。。但我不确定我是否同意。[脸红]这意味着你很可能是对的。[grin]我的理解是,以这种方式使用的
选择对象
不会像
添加成员
那样“扩展”对象。相反,它使用列出的道具创建一个新对象。哪一个是正确的?@Lee_Dailey我的意思不是严格意义上的“扩展”
Select Object
显然会创建一个新对象(因为类型更改为
PSCustomObject
)。是的,但这对新手来说是显而易见的吗?我曾经和一些人打过交道,他们对
Select Object
works的各种方式一无所知。。。有时传递原始对象,有时生成新对象—所有这些都取决于您使用的参数。@Lee_Dailey他们可能不知道。但更重要的问题是:这对他们有影响吗?在大多数情况下,我认为后一个问题的答案是“不”。我明白你的意思。。。但我不确定我是否同意。[脸红]这意味着你很可能是对的。[咧嘴笑]