次の方法で共有


ConvertTo-Html

.NET オブジェクトを、Web ブラウザーに表示できる HTML に変換します。

構文

ConvertTo-Html
              [-InputObject <PSObject>]
              [[-Property] <Object[]>]
              [[-Body] <String[]>]
              [[-Head] <String[]>]
              [[-Title] <String>]
              [-As <String>]
              [-CssUri <Uri>]
              [-PostContent <String[]>]
              [-PreContent <String[]>]
              [-Meta <Hashtable>]
              [-Charset <String>]
              [-Transitional]
              [<CommonParameters>]
ConvertTo-Html
              [-InputObject <PSObject>]
              [[-Property] <Object[]>]
              [-As <String>]
              [-Fragment]
              [-PostContent <String[]>]
              [-PreContent <String[]>]
              [<CommonParameters>]

説明

ConvertTo-Html コマンドレットは、.NET オブジェクトを Web ブラウザーに表示できる HTML に変換します。 このコマンドレットを使用すると、Web ページにコマンドの出力を表示できます。

ConvertTo-Htmlのパラメーターを使用すると、オブジェクトのプロパティの選択、テーブルまたはリスト形式の指定、HTML ページ タイトルの指定、オブジェクトの前後にテキストを追加したり、厳密な DTD ページではなくテーブルまたはリスト フラグメントのみを返したりできます。

複数のオブジェクトを ConvertTo-Htmlに送信すると、PowerShell は、最初に送信したオブジェクトのプロパティに基づいてテーブル (またはリスト) を作成します。 残りのオブジェクトに指定したプロパティのいずれかがない場合は、そのオブジェクトのプロパティ値が空のセルになります。 残りのオブジェクトに追加のプロパティがある場合は、これらのプロパティ値は、ファイルには含まれません。

例 1: 日付を表示する Web ページを作成する

ConvertTo-Html -InputObject (Get-Date)

このコマンドは、現在の日付のプロパティを表示する HTML ページを作成します。 InputObject パラメーターを使用して、Get-Date コマンドの結果を ConvertTo-Html コマンドレットに送信します。

例 2: PowerShell エイリアスを表示する Web ページを作成する

Get-Alias | ConvertTo-Html | Out-File aliases.htm
Invoke-Item aliases.htm

このコマンドは、現在のコンソールで PowerShell エイリアスを一覧表示する HTML ページを作成します。

このコマンドでは、 Get-Alias コマンドレットを使用してエイリアスを取得します。 パイプライン演算子 (|) を使用して、HTML ページを作成する ConvertTo-Html コマンドレットにエイリアスを送信します。 このコマンドでは、 Out-File コマンドレットを使用して HTML コードを aliases.htm ファイルに送信します。

例 3: PowerShell イベントを表示する Web ページを作成する

Get-EventLog -LogName "Windows PowerShell" | ConvertTo-Html | Out-File pslog.htm

このコマンドは、ローカル コンピューター上の Windows PowerShell イベント ログにイベントを表示する pslog.htm という HTML ページを作成します。

Get-EventLog コマンドレットを使用して Windows PowerShell ログ内のイベントを取得し、パイプライン 演算子 (|) を使用して、ConvertTo-Html コマンドレットにイベントを送信します。 このコマンドでは、 Out-File コマンドレットを使用して HTML コードを pslog.htm ファイルに送信します。

このコマンドでは、 Out-File コマンドレットを使用して HTML コードを pslog.htm ファイルに送信します。

例 4: プロセスを表示する Web ページを作成する

Get-Process |
  ConvertTo-Html -Property Name, Path, Company -Title "Process Information" |
    Out-File proc.htm
Invoke-Item proc.htm

これらのコマンドは、ローカル コンピューター上のプロセスの名前、パス、および会社を一覧表示する HTML ページを作成し、開きます。

最初のコマンドでは、 Get-Process コマンドレットを使用して、コンピューターで実行されているプロセスを表すオブジェクトを取得します。 このコマンドでは、パイプライン演算子 (|) を使用して、プロセス オブジェクトを ConvertTo-Html コマンドレットに送信します。

このコマンドでは、 Property パラメーターを使用して、テーブルに含めるプロセス オブジェクトの 3 つのプロパティを選択します。 このコマンドでは、 Title パラメーターを使用して、HTML ページのタイトルを指定します。 また、 Out-File コマンドレットを使用して、結果の HTML を Proc.htm という名前のファイルに送信します。

2 番目のコマンドでは、 Invoke-Item コマンドレットを使用して、既定のブラウザーで Proc.htm を開きます。

例 5: サービス オブジェクトを表示する Web ページを作成する

Get-Service | ConvertTo-Html -CssUri "test.css"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>HTML TABLE</title>
<link rel="stylesheet" type="text/css" href="test.css" />
...

このコマンドは、 Get-Service コマンドレットが返すサービス オブジェクトの HTML ページを作成します。 このコマンドでは、 CssUri パラメーターを使用して、HTML ページのカスケード スタイル シートを指定します。

CssUri パラメーターは、結果の HTML に追加の<link rel="stylesheet" type="text/css" href="test.css"> タグを追加します。 このタグの HREF 属性には、スタイル シートの名前が含まれています。

例 6: サービス オブジェクトを表示する Web ページを作成する

Get-Service | ConvertTo-Html -As LIST | Out-File services.htm

このコマンドは、 Get-Service コマンドレットが返すサービス オブジェクトの HTML ページを作成します。 このコマンドでは、 As パラメーターを使用してリスト形式を指定します。 コマンドレット Out-File 結果の HTML を Services.htm ファイルに送信します。

例 7: 現在の日付の Web テーブルを作成する

Get-Date | ConvertTo-Html -Fragment

<table>
<colgroup>...</colgroup>
<tr><th>DisplayHint</th><th>DateTime</th><th>Date</th><th>Day</th><th>DayOfWeek</th><th>DayOfYear</th><th>Hour</th>
<th>Kind</th><th>Millisecond</th><th>Minute</th><th>Month</th><th>Second</th><th>Ticks</th><th>TimeOfDay</th><th>Year</th></tr>
<tr><td>DateTime</td><td>Monday, May 05, 2008 10:40:04 AM</td><td>5/5/2008 12:00:00 AM</td><td>5</td><td>Monday</td>
<td>126</td><td>10</td><td>Local</td><td>123</td><td>40</td><td>5</td><td>4</td><td>633455808041237213</td><td>10:40:04.12
37213</td><td>2008</td></tr>
</table>

このコマンドでは、 ConvertTo-Html を使用して、現在の日付の HTML テーブルを生成します。 このコマンドでは、 Get-Date コマンドレットを使用して現在の日付を取得します。 パイプライン演算子 (|) を使用して、結果を ConvertTo-Html コマンドレットに送信します。

ConvertTo-Html コマンドには、出力を HTML テーブルに制限する Fragment パラメーターが含まれています。 その結果、 <HEAD> タグや <BODY> タグなど、HTML ページの他の要素は省略されます。

例 8: PowerShell イベントを表示する Web ページを作成する

Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task

このコマンドでは、 Get-EventLog コマンドレットを使用して、Windows PowerShell イベント ログからイベントを取得します。

パイプライン演算子 (|) を使用してイベントを ConvertTo-Html コマンドレットに送信し、イベントを HTML 形式に変換します。

ConvertTo-Html コマンドでは、Property パラメーターを使用して、イベントの IDLevel、および Task プロパティのみを選択します。

例 9: 指定されたサービスを表示する Web ページを作成する

$htmlParams = @{
  Title = "Windows Services: Server01"
  Body = Get-Date
  PreContent = "<P>Generated by Corporate IT</P>"
  PostContent = "For details, contact Corporate IT."
}
Get-Service A* |
  ConvertTo-Html @htmlParams |
    Out-File Services.htm
Invoke-Item Services.htm

このコマンドは、 Aで始まるコンピューター上のサービスを表示する Web ページを作成して開きます。 ConvertTo-HtmlTitleBodyPreContent、および PostContent パラメーターを使用して出力をカスタマイズします。

コマンドの最初の部分では、 Get-Service コマンドレットを使用して、 Aで始まるコンピューター上のサービスを取得します。 このコマンドでは、パイプライン演算子 (|) を使用して、結果を ConvertTo-Html コマンドレットに送信します。 また、 Out-File コマンドレットを使用して、 Services.htm ファイルに出力を送信します。

セミコロン (;) は、最初のコマンドを終了し、2 番目のコマンドを開始します。このコマンドでは、 Invoke-Item コマンドレットを使用して既定のブラウザーで Services.htm ファイルを開きます。

例 10: HTML のメタ プロパティと文字セットを設定する

Get-Service | ConvertTo-HTML -Meta @{
  refresh=10
  author="Author's Name"
  keywords="PowerShell, HTML, ConvertTo-HTML"
} -Charset "UTF-8"

このコマンドは、更新、作成者、キーワードのメタ タグを使用して Web ページの HTML を作成します。 ページの文字セットが UTF-8 に設定されている

例 11: HTML を XHTML Transitional DTD に設定する

Get-Service | ConvertTo-HTML -Transitional

このコマンドは、返された HTML の DOCTYPEXHTML Transitional DTD に設定します

パラメーター

-As

オブジェクトがテーブルまたは一覧のどちらで書式設定されるかを決定します。 有効な値は、 Table および List です。 既定値は Table です。

Table 値は、PowerShell テーブル形式に似た HTML テーブルを生成します。 ヘッダー行には、プロパティ名が表示されます。 各テーブル行は、オブジェクトを表し、各プロパティのオブジェクトの値を表示します。

List 値は、PowerShell リスト形式に似たオブジェクトごとに 2 列の HTML テーブルを生成します。 最初の列にプロパティ名が表示されます。 2 番目の列には、プロパティ値が表示されます。

型:String
指定可能な値:Table, List
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Body

開始タグの後に追加するテキスト <BODY> 指定します。 既定では、その位置にテキストがありません。

型:String[]
配置:3
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Charset

開始 <charset> タグに追加するテキストを指定します。 既定では、その位置にテキストがありません。

このパラメーターは、PowerShell 6.0 で導入されました。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-CssUri

HTML ファイルに適用されるカスケード スタイル シート (CSS) の Uniform Resource Identifier (URI) を指定します。 URI は、出力のスタイル シートのリンクに含まれます。

型:Uri
Aliases:cu, uri
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Fragment

HTML テーブルのみを生成します。 <HTML><HEAD><TITLE>、および<BODY>タグは省略されます。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Head

<HEAD> タグの内容を指定します。 既定値は、<title\>HTML TABLE</title> です。 Head パラメーターを使用する場合、Title パラメーターは無視されます。

型:String[]
配置:1
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

HTML で表されるオブジェクトを指定します。 オブジェクトが格納されている変数を入力するか、オブジェクトを取得するコマンドまたは式を入力します。

このパラメーターを使用して、コンピューター上のすべてのサービスなど、複数のオブジェクトを送信する場合、 ConvertTo-Html は、コレクションまたはオブジェクトの配列のプロパティを表示するテーブルを作成します。 個々のオブジェクトのテーブルを作成するには、パイプライン演算子を使用して、オブジェクトをパイプ処理して ConvertTo-Htmlします。

型:PSObject
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Meta

開始 <meta> タグに追加するテキストを指定します。 既定では、その位置にテキストがありません。

このパラメーターは、PowerShell 6.0 で導入されました。

型:Hashtable
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PostContent

終了タグの後に追加するテキスト </TABLE> 指定します。 既定では、その位置にテキストがありません。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PreContent

開始 <TABLE> タグの前に追加するテキストを指定します。 既定では、その位置にテキストがありません。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Property

HTML 内のオブジェクトの指定したプロパティが含まれます。 Property パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティには、スクリプト ブロックまたはハッシュ テーブルを指定できます。 有効なキーと値のペアは次のとおりです。

  • Name (またはラベル) - <string> (PowerShell 6.x で追加)
  • Expression - <string> または <script block>
  • FormatString - <string>
  • Width - <int32> - より大きくする必要があります 0
  • Alignment - LeftCenter、または Right

詳細については、「 about_Calculated_Properties」を参照してください。

型:Object[]
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Title

HTML ファイルのタイトル、つまり、 <TITLE> タグの間に表示されるテキストを指定します。

型:String
配置:2
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Transitional

DOCTYPEXHTML Transitional DTD に変更します。既定のDOCTYPEXHTML Strict DTD

このパラメーターは、PowerShell 6.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

PSObject

任意のオブジェクトをこのコマンドレットにパイプできます。

出力

String

このコマンドレットは、変換されたオブジェクトを表す HTML の文字列の配列を返します。

メモ

このコマンドレットを使用するには、1 つ以上のオブジェクトをコマンドレットにパイプするか、 InputObject パラメーターを使用してオブジェクトを指定します。 入力が複数のオブジェクトで構成されている場合、これら 2 つのメソッドの出力は大きく異なります。

  • 複数のオブジェクトをコマンドレットにパイプすると、PowerShell は一度に 1 つずつオブジェクトをコマンドレットに送信します。 その結果、 ConvertTo-Html は個々のオブジェクトを表示するテーブルを作成します。 たとえば、コンピューター上のプロセスをパイプ処理して ConvertTo-Htmlすると、結果のテーブルにすべてのプロセスが表示されます。

  • InputObject パラメーターを使用して複数のオブジェクトを送信する場合、ConvertTo-Htmlこれらのオブジェクトはコレクションまたは配列として受け取ります。 その結果、配列内の項目ではなく、配列とプロパティを表示するテーブルが作成されます。 たとえば、 InputObject を使用してコンピューター上のプロセスを ConvertTo-Htmlに送信すると、結果のテーブルにオブジェクト配列とそのプロパティが表示されます。

    XHTML Strict DTD に準拠するために、 DOCTYPE タグはそれに応じて変更されます。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"\>