[登録されているタグ]

[記事公開日]2025/12/20

PowerShellでHTMLに変換する|ConvertTo-Htmlの使い方

📝 はじめに

PowerShellで取得した結果を、
「そのまま画面で見るだけでなく、レポートとして共有したい」
「Excelではなく、ブラウザで見られる形式にしたい」
と思ったことはありませんか?

そんなときに便利なのが
ConvertTo-Html です。
この記事では、PowerShellのオブジェクトをHTMLに変換する基本から、
実務でよく使われるレポート作成の考え方までを解説します。

こんな場面で便利

  • コマンド結果をHTMLレポートにしたい
  • メールやWebで共有できる形式にしたい
  • 表形式で見やすくまとめたい

✅ このコマンドでできること(要点)

  • PowerShellオブジェクトをHTMLに変換できる
  • 結果を表(table)形式で出力できる
  • Out-File と組み合わせてHTMLファイルとして保存できる
  • レポート・報告書作成に向いている

✅ ConvertTo-Html でできること

ConvertTo-Html は、
コマンド結果(オブジェクト)を
HTML形式の文字列に変換するコマンドです。

出力結果はHTMLの <table> 要素として生成されるため、
ブラウザで開くと表として確認できます。
似た用途の考え方としては、「画面表示用の結果を“共有用レポート”に変換する」です。

🧩 基本構文

コマンド | ConvertTo-Html

▶ 基本的な使い方(まずこれだけ)

🔹 コマンド結果をHTMLとして表示する

Get-Service | ConvertTo-Html

実行するとHTML文字列が表示されます。
そのままでは見づらいため、通常はファイルに保存します。

🔹 HTMLファイルとして保存する

Get-Service |
ConvertTo-Html |
Out-File ".\services.html" -Encoding UTF8

作成されたHTMLファイルをブラウザで開けば、
サービス一覧が表として表示されます。

🛠 よく使われる指定例

🔹 必要な列だけに絞ってHTML化する

Get-Process |
Select-Object Name, Id, CPU |
ConvertTo-Html |
Out-File ".\process.html" -Encoding UTF8

HTMLは横に広がりやすいため、
Select-Object で列を絞るのが実務では重要です。

🔹 タイトルを付けたHTMLレポートを作る

Get-Process |
Select-Object -First 10 Name, CPU |
ConvertTo-Html -Title "Process Report" |
Out-File ".\report.html" -Encoding UTF8

-Title を指定すると、
HTMLのタイトルとして反映されます。

💼 実務でよく使う使用例(応用)

🔹 条件抽出 → 並び替え → HTMLレポート

Get-Process |
Where-Object CPU -gt 1 |
Sort-Object CPU -Descending |
Select-Object -First 20 Name, CPU, Id |
ConvertTo-Html -Title "High CPU Process" |
Out-File ".\highcpu.html" -Encoding UTF8

トラブル調査や報告用に、そのまま提出できるHTMLが作成できます。

🔹 HTMLを変数に入れて再利用する

$html = Get-Service | Select-Object -First 5 Status, Name | ConvertTo-Html
$html
組み合わせ例

  • Select-Object:列と件数を整理
  • Where-Object:条件抽出
  • Out-File -Encoding:HTMLを安全に保存

🧩 よくある勘違い・つまずきポイント

  • ConvertTo-Htmlは「表示・共有用」であり、後続処理向けではない
  • 列が多いと横に広がって読みにくくなる
  • CSSは自動で整ってくれない(必要なら自前で調整)
  • 保存時の文字コードで日本語が崩れることがある

🔄 cmdとの違いについて

cmdではHTMLレポートを作成するには、
タグを手書きする必要があります。
PowerShellの ConvertTo-Html は、
オブジェクトを理解したうえで自動的に表を生成できる点が大きな違いです。

⚠ エラー・うまく動かないときの確認ポイント

  • 保存先フォルダが存在するか
  • 書き込み権限がある場所か
  • 列数が多すぎないか(Select-Objectで調整)
  • 文字コード指定(UTF8など)

🧠 注意点

HTMLは共有しやすい反面、
情報量が多すぎると読み手の負担になります。
実務では「必要最小限の列・件数」に絞ったHTMLレポートを作るのがおすすめです。

📌 まとめ

  • ConvertTo-Html は結果をHTMLに変換するコマンド
  • 表形式でレポートを作成できる
  • 列整理は Select-Object が重要
  • 保存時は Out-File -Encoding とセットで使う

🔎 PowerShellコマンドを探す

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • HTMLに変換したい
  • CSVを書き出したい(Export-Csv
  • JSONを書き出したい(ConvertTo-Json
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る