PowerShell では、IEnumerable[]
は相性悪いわけですが、シーケンスを平坦にしたいものはしたく。
PowerShell の 標準出力の配列は展開される
特性を使うと、あたかもForeach-Object
が平坦化してるように見えますがびみょーんです。
なので、Zipに続き SelectMany を書いてみました。だれかー、おしえてくだされ~。
目次
コード
本コードは PowerShell 4.0 以上限定です
GitHub に公開しておきます。
サンプルとかはここに
いつ使うの
久々にActiveDirectory をちょろろんっと触ってるんですが、OU とか深くなった時の SearchBase
を DN, OU で自動生成しています。
が、しかし OU が深くなった時にみなさんどうしてるんですかね?OUを入力シーケンスとみなし時に、SearchBase
はフラットな階層として表現する必要があるので平坦化が欲しいと思うんですが....ということでそういう使い方してます。
対象のOU に対して、親OUが配列で入ってきたりして平坦化がほしくて。
ActiveDirectoryは モジュールを作ってコード化していますが、AD用のPowerShellモジュール の出来がひどいことこの上ないですね....拡張ラッパーを涙ながら作ってます。
まとめ
そろそろ Linq to PowerShell。。。。じゃないや、PSLinq を真面目に書く必要がありそう。というかないとつらいです。