One of the issues you are bound to run into, sooner or later, is a concurrent pipeline error when working in a remote PowerShell session. This is a common stumbling block for most administrators, since all Exchange Management Shell tasks are done through PowerShell remoting. Concurrent pipeline errors can often be counter-intuitive because the same command syntax works fine in a standard PowerShell session. In this recipe, we'll take a look at why this happens and what you can do to get around it.
PowerShell remoting does not support more than one pipeline running at a time. When executing multiple cmldets within a pipeline, you may need to store the output of one or more commands in an object that can be then be passed down the pipeline to other commands. For example, to pipe a collection of mailboxes to the New-InboxRule
command, use
the following syntax to avoid a concurrent pipeline operation:
$mailboxes = Get-Mailbox...