PowerShell の出力を見やすくする工夫
こんにちは、多田です。
PowerShell を使っていると、コマンド自体よりも「どのプロパティを取得するか」で迷うことが結構あります。
特に Exchange Online や Microsoft Graph まわりは、1つのコマンドでたくさんのプロパティが返ってくるので、何も考えずにそのまま眺めると逆に分かりづらくなりがちです。
そんなときに役立つのが Select-Object と Format-List です。Select-Object は必要なオブジェクトやプロパティを選ぶためのコマンドで、Format-List は表示をリスト形式に整えるためのコマンドとして私はよく使用します。
Select-Object と Format-List の役割の違い
この2つは一見似ていますが、役割は少し違います。Select-Object は、-Property で必要な項目だけを取り出したり、-First や -Last で件数を絞ったりできるコマンドです。
選んだ結果は新しいオブジェクトとして返されるため、その後に CSV 出力したり、さらに別のコマンドへつなげたりしやすいのが特徴です。
一方で Format-List は、オブジェクトの各プロパティをラベル付きで1行ずつ表示するためのコマンドです。PowerShell の Format 系コマンドは「何を返すか」より「どう見せるか」に寄っているので、Format-List は詳細確認用の見せ方として使うとしっくりきます。
なお、対話的に使う場面では Select-Object を Select、Format-List を fl と省略して書くこともできます。
まず Format-List で確認する使い方
まだ欲しいプロパティ名が分かっていないときは、まず fl、正式には Format-List -Property * で全体像を確認するのが分かりやすいです。

この使い方のポイントは、「値を細かく読む」というより、どんな項目が返ってくるかを棚卸しすることです。
似た名前のプロパティが複数あることも珍しくないので、まず fl で見てから必要なものを決める、という流れにしておくと迷いにくくなります。
特に Format-List を使用せずにコマンドを実行すると、以下のようにかなり限定的なプロパティが出力されます。

Select-Object で必要な項目だけに絞る
何を見たいかが決まったら、次は Select-Object で必要な項目だけに絞ります。Select-Object -Property は、指定したプロパティだけを持つ出力を返せるので、結果がすっきりして見やすくなりますし、そのまま CSV に出したり、後続処理に回したりしやすくなります。

さらに、絞った結果を縦に見たいなら最後に Format-List をつなげればOKです。

まとめ
自分が普段 PowerShell を触るときは、最初からきれいにコマンドを書くというより、まず fl * で何が返ってくるかざっと見る ことが多いです。Format-List -Property * はオブジェクトの全プロパティを確認するのに向いているので、「このコマンドって何が取れるんだっけ」と確認したいときにちょうどいいです。
その中で「今回見たいのはこれだな」という項目が分かったら、今度は Select-Object で必要な項目だけに絞ります。Select-Object は指定したプロパティだけを持つ出力を返せるので、情報を整理したいときに使いやすいです。
感覚としては
「まず fl * で棚卸しして、必要なものを Select-Object で整える」
くらいの感じで使用しています。
最後までご覧いただきありがとうございました。