ConvertTo-Html
Microsoft .NET Framework オブジェクトを Web ブラウザで表示できる HTML に変換します。
構文
ConvertTo-Html
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[[-Body] <String[]>]
[[-Head] <String[]>]
[[-Title] <String>]
[-As <String>]
[-CssUri <Uri>]
[-PostContent <String[]>]
[-PreContent <String[]>]
[<CommonParameters>]
ConvertTo-Html
[-InputObject <PSObject>]
[[-Property] <Object[]>]
[-As <String>]
[-Fragment]
[-PostContent <String[]>]
[-PreContent <String[]>]
[<CommonParameters>]
説明
ConvertTo-Html コマンドレットは、.NET Framework オブジェクトを Web ブラウザに表示できる HTML に変換します。 このコマンドレットを使用すると、Web ページにコマンドの出力を表示できます。
ConvertTo-Html のパラメータを使用して、オブジェクトのプロパティの選択、テーブルまたはリストの形式の指定、HTML ページのタイトルの指定、オブジェクトの前後のテキストの追加、厳密な DTD ページではなくテーブルまたはリストのフラグメントのみを返すことができます。
複数のオブジェクトを ConvertTo-Html に送信すると、Windows PowerShell は、最初に送信したオブジェクトのプロパティに基づいてテーブル (リスト) を作成します。 残りのオブジェクトに指定されたプロパティがない場合、そのオブジェクトのプロパティ値は空のセルになります。 残りのオブジェクトに追加のプロパティがある場合、それらのプロパティ値はファイルに含まれません。
例
例 1: 日付を表示する Web ページを作成する
PS C:\> ConvertTo-Html -InputObject (Get-Date)
このコマンドは、現在の日付のプロパティを表示する HTML ページを作成します。 InputObject パラメーターを使用して、Get-Date コマンドの結果を ConvertTo-Html コマンドレットに送信します。
例 2: PowerShell エイリアスを表示する Web ページを作成する
PS C:\> Get-Alias | ConvertTo-Html | Out-File aliases.htm
PS C:\> Invoke-Item aliases.htm
このコマンドは、現在のコンソールに Windows PowerShell エイリアスを一覧表示する HTML ページを作成します。
このコマンドでは、Get-Alias コマンドレットを使用してエイリアスを取得します。 パイプライン演算子 (|) を使用してエイリアスを ConvertTo-Html コマンドレットに送信し、HTML ページを作成します。 また、このコマンドでは Out-File コマンドレットを使用して、HTML コードを aliases.htm ファイルに送信します。
例 3: PowerShell イベントを表示する Web ページを作成する
PS C:\> 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 ファイルに送信します。
例 4: プロセスを表示する Web ページを作成する
PS C:\> Get-Process | ConvertTo-Html -Property Name, Path, Company -Title "Process Information" | Out-File proc.htm; ii proc.htm
これらのコマンドは、ローカル コンピューター上のプロセスの名前、パス、および会社を一覧表示する HTML ページを作成して開きます。
最初のコマンドでは、Get-Process コマンドレットを使用して、コンピューターで実行されているプロセスを表すオブジェクトを取得します。 このコマンドでは、パイプライン演算子 (|) を使用して、プロセス オブジェクトを ConvertTo-Html コマンドレットに送信します。
このコマンドでは、Property パラメーターを使用して、テーブルに含めるプロセス オブジェクトの 3 つのプロパティを選択します。 このコマンドでは、Title パラメーターを使用して、HTML ページのタイトルを指定します。 また、このコマンドでは Out-File コマンドレットを使用して、結果の HTML を Proc.htmという名前のファイルに送信します。
2 番目のコマンドは、Invoke-Item コマンドレット (alias = ii) を使用して、既定のブラウザーで Proc.htm を開きます。 2 つのコマンドはセミコロン (;)で区切られます。
例 5: サービス オブジェクトを表示する Web ページを作成する
PS> 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 ページを作成する
PS C:\> Get-Service | ConvertTo-Html -As LIST | Out-File services.htm
このコマンドは、Get-Service コマンドレットが返すサービス オブジェクトの HTML ページを作成します。 このコマンドでは、As パラメーターを使用してリスト形式を指定します。 コマンドレット Out-File は、結果の HTML を Services.htm ファイルに送信します。
例 7: 現在の日付の Web テーブルを作成する
PS C:\> Get-Date | cth -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 コマンドレット ( エイリアスは cth) に送信します。
ConvertTo-Html コマンドには、出力を HTML テーブルに制限する Fragment パラメータが含まれています。 その結果、HTML ページの他の要素 <HEAD> タグや <BODY> タグなどは省略されます。
例 8: PowerShell イベントを表示する Web ページを作成する
PS C:\> Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task
このコマンドは、Get-EventLog コマンドレットを使用して、Windows PowerShell イベント ログからイベントを取得します。
パイプライン演算子 (|) を使用してイベントを ConvertTo-Html コマンドレットに送信し、イベントが HTML 形式に変換されます。
ConvertTo-Html コマンドは、Property パラメータを使用して、イベントの ID、Level、および Task プロパティのみを選択します。
例 9: 指定されたサービスを表示する Web ページを作成する
PS C:\> Get-Service A* | ConvertTo-Html -Title "Windows Services: Server01" -Body (get-date) -Pre
"<P>Generated by Corporate IT</P>" -Post "For details, contact Corporate IT." | Out-File services.htm; ii services.htm
このコマンドは、A で始まるコンピュータ上のサービスを表示する Web ページを作成して開きます。ConvertTo-Html の Title、Body、PreContent、PostContent の各パラメーターを使用して、出力をカスタマイズします。
コマンドの最初の部分では、Get-Service コマンドレットを使用して、A で始まるコンピューター上のサービスを取得します。このコマンドでは、パイプライン演算子 (|) を使用して、結果を ConvertTo-Html コマンドレットに送信します。 また、このコマンドでは Out-File コマンドレットを使用して、出力を Services.htm ファイルに送信します。
セミコロン (;) は、最初のコマンドを終了し、2 番目のコマンドを開始します。このコマンドは、Invoke-Item コマンドレット (alias = "ii") を使用して、既定のブラウザーで Services.htm ファイルを開きます。
パラメーター
-As
オブジェクトをテーブルまたはリストのどちらとして書式設定するかを指定します。 このパラメーターに指定できる値は、Table と List です。 デフォルト値は [テーブル] です。
Table 値は、Windows PowerShell テーブル形式に似た HTML テーブルを生成します。 ヘッダー行にプロパティ名が表示されます。 各テーブル行はオブジェクトを表し、各プロパティのオブジェクトの値を表示します。
List 値は、Windows PowerShell リスト形式に似た各オブジェクトに対して 2 列の HTML テーブルを生成します。 最初の列にはプロパティ名が表示されます。2 番目の列には、プロパティの値が表示されます。
型: | String |
指定可能な値: | Table, List |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Body
開始 <BODY> タグの後に追加するテキストを配列として指定します。 既定では、その位置にテキストはありません。
型: | String[] |
配置: | 3 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-CssUri
HTML ファイルに適用されるカスケード スタイル シート (CSS) の Uri (Uniform Resource Identifier) を指定します。 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 はコレクションまたはオブジェクトの配列 (System.Object[]) のプロパティを表示するテーブルを作成します。 個々のオブジェクトのテーブルを作成するには、パイプライン演算子を使用してオブジェクトを ConvertTo-Html にパイプします。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-PostContent
終了 </TABLE> タグの後に追加するテキストを指定します。 既定では、その位置にテキストはありません。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-PreContent
開始 <TABLE> タグの前に追加するテキストの配列を指定します。 既定では、その位置にテキストはありません。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Property
HTML 内のオブジェクトのプロパティを指定します。 Property パラメーターの値には、新しい計算プロパティを指定できます。 計算プロパティを作成するには、ハッシュ テーブルを使用します。 有効なキーは次のとおりです。
- ラベル <文字列> (Select-Object や Format-Table とは異なり、Name キーはサポートされていません)
- 式 <文字列> または <スクリプト ブロック>
型: | Object[] |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Title
HTML ファイルのタイトル ( <TITLE> タグの間に表示されるテキスト) を指定します。
型: | String |
配置: | 2 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
任意の .NET オブジェクトを ConvertTo-Html にパイプ処理できます。
出力
System.String or System.Xml.XmlDocument
このコマンドレットは、有効な HTML を構成する一連の文字列を返します。
メモ
このコマンドレットを使用するには、1 つ以上のオブジェクトをコマンドレットにパイプするか、InputObject パラメーターを使用してオブジェクトを指定します。 入力が複数のオブジェクトで構成されている場合、これら 2 つのメソッドの出力は大きく異なります。
複数のオブジェクトをコマンドレットにパイプすると、Windows PowerShell はオブジェクトを一度に 1 つずつコマンドレットに送信します。 その結果、 ConvertTo-Html は個々のオブジェクトを表示するテーブルを作成します。 たとえば、コンピューター上のプロセスを ConvertTo-Html にパイプ処理すると、結果のテーブルにはすべてのプロセスが表示されます。
InputObject パラメータを使用して複数のオブジェクトを送信すると、ConvertTo-Html はこれらのオブジェクトをコレクションまたは配列として受け取ります。 その結果、配列内の項目ではなく、配列とそのプロパティを表示するテーブルが作成されます。 たとえば、 InputObject を使用してコンピューター上のプロセスを ConvertTo-Html に送信すると、結果のテーブルにはオブジェクト配列 (System.Object[]) とそのプロパティが表示されます。
XHTML Strict DTD に準拠するために、DOCTYPE タグは次のように変更されます。
(<!文書タイプ HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//JA" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">)