ConvertTo-Html コマンドレットの使用

データを HTML ファイルとして保存

コンソール ウィンドウやテキスト ファイルは悪くありませんが、出力デバイスとして HTML に勝るには難しいことがあります (たとえば、HTML にはより多くの書式設定のオプションや柔軟性があります)。さいわい、ConvertTo-Html コマンドレットを使用すると Windows PowerShell の出力を Web ページに簡単に表示できます。たとえば、次のコマンドは、Get-Process コマンドを使用して、コンピュータで実行されているすべての処理に関する情報を取得します。Get-Process の出力は ConvertTo-Html コマンドレットにパイプ処理され、そのデータから HTML テーブルが作成されます。次に、そのテーブルは Set-Content コマンドレットにパイプ処理され、Web ページ (C:\Scripts\Test.htm) として情報が保存されます。大変な作業のように見えますが、次のように、コマンドは単純です。

Get-Process | ConvertTo-Html | Set-Content c:\scripts\test.htm

結果の Web ページは次のようになります。

Windows PowerShell

そうです。このテーブルは見づらいですね。これは、Get-Process で返されるプロパティ数が多いため、対応するテーブルの列数も多くなったためです。次の修正したコマンドは、テーブルに表示するプロパティを Name、Path、FileVersion に限定しています。

Get-Process | ConvertTo-Html name,path,fileversion | Set-Content c:\scripts\test.htm

単純化した Web ページは次のようになります。

Windows PowerShell

はるかに見やすくなりました。

ただ、完璧ではありません。既定で Web ページに割り当てられたタイトルは、気の利いた HTML テーブルとは言えません。この点を念頭に、次のコマンドでは -title パラメータを使用してウィンドウのタイトルを Process Information に変更します。

Get-Process | ConvertTo-Html name,path,fileversion -title "Process Information"
 | Set-Content c:\scripts\test.htm

Windows PowerShell

これで正しい形になりました。

最後の処理を実行しましょう。おわかりのように、Web ページに持っている唯一の情報は、データ テーブルです。テーブルに説明の情報を付ける場合、-body パラメータに、ページに表示するテキストを続けます。

Get-Process
 |  ConvertTo-Html name,path,fileversion -title "Process Information"
     -body "Information about the processes running on the computer."
 |  Set-Content c:\scripts\test.htm

確かに、ここで追加した内容は多くありません。それでも、結果の Web ページでは、テーブルが何を表わしているか分かりやすくなります。

Windows PowerShell

また、-body パラメータを使用して設定される情報は HTML である点にも注意してください。つまり、パラメータには有効な HTML タグを含めることができます。<H2> スタイルを使用して前書きを表示することもできます。その場合、<H2> タグと </H2> タグを含めるだけです。

Get-Process
 |  ConvertTo-Html name,path,fileversion -title "Process Information"
     -body "<H2>Information about the processes running on the computer.</H2>"
 |  Set-Content c:\scripts\test.htm

または、よりグラフィカルに表示することもできます。

Windows PowerShell

Scripting Guys が Web ページ デザイナではない理由を考えたことがあるなら、前出のスクリーン ショットがその証拠です。これで、ConvertTo-HTML を使用すると便利な理由がわかったと思います。

関連リンク