管道传输

 

适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上一次修改主题: 2006-08-15

Exchange 命令行管理程序中的管道传输是一个 cmdlet 在执行操作时使用另一个 cmdlet 的输出所进行的操作。管道传输使用管道符号“|”来完成。相同名词 cmdlet 集中的所有谓词都可以使用另一个命令通过管道传递来的信息。某些名词 cmdlet 集还允许通过管道向另一个名词 cmdlet 集传递数据。

使用管道传输执行多个操作

使用管道传输可将两个或更多个 cmdlet 的操作串联在一起,从而 Exchange 命令行管理程序的功能将通过合并而加强,这使您可以将较小的组件转换成功能更强大的命令。例如,可以使用一个 cmdlet 收集数据,然后将数据传递给第二个 cmdlet 以筛选数据得到一个子集,然后,将该数据传递给第三个 cmdlet 以只处理该子集。

例如,以下命令使用管道传输将 Server1 上的所有邮箱移动到 Server2 上的 Executives 数据库,具体做法是通过管道将 Get-Mailbox cmdlet 的输出传递给 Move-Mailbox cmdlet:

Get-Mailbox -Server Server1 | Move-Mailbox -TargetDatabase Server2\Executives

使用管道传输处理来自另一个 Cmdlet 的数据

还可以使用管道传输来处理 cmdlet 的输出数据。例如,若要获得包含其 HandleCount 属性值大于 400 的所有进程的列表,可以运行以下命令:

Get-Process | Where { $_.HandleCount -gt 400 } | Format-List

在此示例中,Get-Process cmdlet 将对象传递给 Where-Object cmdlet。Where-Object cmdlet 挑出属性名称为 HandleCount 且值大于 400 的对象。

在此示例中,HandleCount 属性的前面有 $_ 变量。该变量是由 Exchange 命令行管理程序自动创建的,用于存储当前管道对象。然后,Where-Object cmdlet 将这些对象发送给 Format-List cmdlet 进行显示。

使用结构化对象代替文本是 Exchange 命令行管理程序中最受用户青睐的功能之一。结构化对象的使用为功能强大的管理合成模式的形成奠定了基础。

有关结构化对象的详细信息,请参阅结构化数据

使用管道传输报告错误

若要报告错误,可以使用错误管道。错误管道允许在命令运行的同时报告错误。这意味着不必等到命令完成运行,或将错误信息放在标准的结果管道中。Write-Error cmdlet 即可将它的参数写入错误管道中。

有关管道传输的详细信息,请在 Exchange 命令行管理程序中运行以下命令:

Get-Help About_Pipeline