通るとき、PowerShellは入力されたオブジェクトを展開、ストリームに渡して、右辺の式を実行、式結果を変数格納時にArray(1オブジェクトの場合はスカラ)としてまとめあげなおします。時は、パイプラインを通してオブジェクトの要素を処理、結果を元の型にまとめあげなおしています。型[PSCustomObject]が維持されています。これはメソッド処理されており、各要素が処理されてパイプラインを介さずに順に変数に格納されています。式結果要素を順番に新しいコレクションとして保持しています。PSCustomObjectではないのでArrayというプロパティは存在せずアクセスできません。2})つまり、これとやっていることは一緒ですね。パイプラインを通って変数に格納するか、パイプライン同様に式結果を変数格納前にまとめればいいのです。