ようにパイプライン出力は指示通り2件であるものの、上流の処理は結局、全部実行されてしまっています。ように、きちんと上流の処理を打ち切ってくれています。-Firstでは実現できているということです。これと同じことを我々も自作関数の中でやりたいわけです。-Firstは具体的にどういう処理をしているかというと、StopUpstreamCommandsExceptionという例外をthrowすることでパイプライン処理の打ち切りを実現しています。この例外はまさに名前の通り、パイプライン上流の処理を中止するための例外です。この例外を自作関数でthrowしてやればうまくいきそうです。この例外は非publicな例外クラスであることから、New-Objectコマンドレットなどでインスタンス化することはできません。リフレクションを駆使する必要がでてきます。tech.guitarrapc.cóm(Add-TypeでC#経由でリフレクションしてます。)頑張ればできなくはないですが、もっと楽な方法はないものか...と思ってあきらめかけたところ、いい方法を思いついたので紹介します。-Firstでできることが我々には(簡単には)できない。-Firstを使えばいいじゃない。}}scriptblockにはGetSteppablePipelineというメソッドが存在し、このメソッドによりSteppablePipelineオブジェクトが取得できます。endを個別に実行する」ための機能です。◆パイプライン入力・パラメータ入力対応のGridView出力関数を作る(私自身も以前この記事で知りました。1}というスクリプトブロックは、1回目に実行するprocessブロック内でStopUpstreamCommandsExceptionを出してくれます。1}のprocessブロックの処理を呼び出してやればいいわけです。