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 ページは次のようになります。
そうです。このテーブルは見づらいですね。これは、Get-Process で返されるプロパティ数が多いため、対応するテーブルの列数も多くなったためです。次の修正したコマンドは、テーブルに表示するプロパティを Name、Path、FileVersion に限定しています。
Get-Process | ConvertTo-Html name,path,fileversion | Set-Content c:\scripts\test.htm
単純化した Web ページは次のようになります。
はるかに見やすくなりました。
ただ、完璧ではありません。既定で Web ページに割り当てられたタイトルは、気の利いた HTML テーブルとは言えません。この点を念頭に、次のコマンドでは -title パラメータを使用してウィンドウのタイトルを Process Information に変更します。
Get-Process | ConvertTo-Html name,path,fileversion -title "Process Information"
| Set-Content c:\scripts\test.htm
これで正しい形になりました。
最後の処理を実行しましょう。おわかりのように、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 ページでは、テーブルが何を表わしているか分かりやすくなります。
また、-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
または、よりグラフィカルに表示することもできます。
Scripting Guys が Web ページ デザイナではない理由を考えたことがあるなら、前出のスクリーン ショットがその証拠です。これで、ConvertTo-HTML を使用すると便利な理由がわかったと思います。