Exchange 2007 以降では PowerShell を利用して設定情報を出力することができますが、Format-List などで出力するよりも Export-CliXml を使うほうが便利な場合があります。
ご存じの方も多いかと思いますが、PowerShell では豊富なコマンドレットが用意されておりフィルタやソートはもちろん、カスタム オブジェクトを作成してデータを処理することなどが容易になっています。このような機能を利用する場合には Format-List 等ではなく Export-CliXml を活用いただければと思います。Export-CliXml で出力したデータは、Import-Clixml を使って PowerShell のオブジェクトとして復元でき、利用者は自由にデータの操作ができるようになります。
例えば、マシン上の全プロセスの状態を出力するために Get-Process | fl * と実行するとリスト形式で各プロセスの情報が大量に出力されますが、これではデータを利用する際には不便です。例えば結果を特定のプロパティ値でソートしたりすることが簡単にはできません。
代わりに Export-Clixml を使うことでより効率的に利用することができます。
シンプルな Export-Clixml の利用方法は以下です。
1 | コマンド | Export-Clixml <出力先ファイル> |
例 1:
1 | Get-Process | Export-Clixml Processes_Snapshot.xml |
例 2:
1 | Get-DistributionGroup | Export-Clixml DistributionGroup_List.xml |
例えば、上記例 1 のように Export-Clixml で出力した xml ファイルをトラブルシュート等のために利用する場合、以下のように Import-Clixml で取り込んだ後に PowerShell のコマンドレットを利用して必要な情報を迅速に確認できます。
ここでは例として、全プロセスから “Exchange” という文字列を含むものをフィルタし、且つ CPU 利用率を降順でソートして上位 5 つのプロセスをリストしています。
1 | $snapshot = Import-Clixml Processes_Snapshot.xml |
情報を出力したマシンではなくとも、PowerShell が利用できるマシンであれば Import-Clixml を利用して上記のように解析することができますので、トラブルシュート等の際にご活用いただければと思います。
参考:
Export-Clixml
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/export-clixml