ConvertTo-Html
Konvertiert .NET-Objekte in HTML, die in einem Webbrowser angezeigt werden können.
Syntax
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>]
Beschreibung
Das ConvertTo-Html
Cmdlet konvertiert .NET-Objekte in HTML, die in einem Webbrowser angezeigt werden können. Sie können dieses Cmdlet verwenden, um die Ausgabe eines Befehls auf einer Webseite anzuzeigen.
Mit den Parametern zum Auswählen von ConvertTo-Html
Objekteigenschaften können Sie ein Tabellen- oder Listenformat angeben, den HTML-Seitentitel angeben, Text vor und nach dem Objekt hinzufügen und nur das Tabellen- oder Listenfragment anstelle einer strengen DTD-Seite zurückgeben.
Wenn Sie mehrere Objekte an ConvertTo-Html
übermitteln, erstellt PowerShell die Tabelle (oder Liste) basierend auf den Eigenschaften des ersten objekts, das Sie übermitteln. Wenn die übrigen Objekte nicht über eine der angegebenen Eigenschaften verfügen, ist der Eigenschaftenwert dieses Objekts eine leere Zelle. Wenn die übrigen Objekte zusätzliche Eigenschaften aufweisen, sind diese Eigenschaftenwerte nicht in der Datei enthalten.
Beispiele
Beispiel 1: Erstellen einer Webseite zum Anzeigen des Datums
ConvertTo-Html -InputObject (Get-Date)
Dieser Befehl erstellt eine HTML-Seite, die die Eigenschaften des aktuellen Datums anzeigt. Er verwendet den InputObject-Parameter , um die Ergebnisse eines Get-Date
Befehls an das ConvertTo-Html
Cmdlet zu übermitteln.
Beispiel 2: Erstellen einer Webseite zum Anzeigen von PowerShell-Aliasen
Get-Alias | ConvertTo-Html | Out-File aliases.htm
Invoke-Item aliases.htm
Mit diesem Befehl wird eine HTML-Seite erstellt, die die PowerShell-Aliase in der aktuellen Konsole auflistet.
Der Befehl verwendet das Get-Alias
Cmdlet, um die Aliase abzurufen. Er verwendet den Pipelineoperator (|
), um die Aliase an das ConvertTo-Html
Cmdlet zu senden, wodurch die HTML-Seite erstellt wird. Der Befehl verwendet auch das Out-File
Cmdlet, um den HTML-Code an die aliases.htm
Datei zu senden.
Beispiel 3: Erstellen einer Webseite zum Anzeigen von PowerShell-Ereignissen
Get-EventLog -LogName "Windows PowerShell" | ConvertTo-Html | Out-File pslog.htm
Mit diesem Befehl wird eine HTML-Seite erstellt pslog.htm
, die die Ereignisse im Windows PowerShell-Ereignisprotokoll auf dem lokalen Computer anzeigt.
Es verwendet das Get-EventLog
Cmdlet, um die Ereignisse im Windows PowerShell-Protokoll abzurufen, und verwendet dann den Pipelineoperator (|
) zum Senden der Ereignisse an das ConvertTo-Html
Cmdlet. Der Befehl verwendet auch das Out-File
Cmdlet, um den HTML-Code an die pslog.htm
Datei zu senden.
Der Befehl verwendet auch das Out-File
Cmdlet, um den HTML-Code an die pslog.htm
Datei zu senden.
Beispiel 4: Erstellen einer Webseite zum Anzeigen von Prozessen
Get-Process |
ConvertTo-Html -Property Name, Path, Company -Title "Process Information" |
Out-File proc.htm
Invoke-Item proc.htm
Diese Befehle erstellen und öffnen eine HTML-Seite, die den Namen, Pfad und das Unternehmen der Prozesse auf dem lokalen Computer auflistet.
Der erste Befehl verwendet das Get-Process
Cmdlet, um Objekte abzurufen, die die prozesse darstellen, die auf dem Computer ausgeführt werden. Der Befehl verwendet den Pipelineoperator (|
), um die Prozessobjekte an das ConvertTo-Html
Cmdlet zu senden.
Der Befehl verwendet den Parameter Property , um drei Eigenschaften der Prozessobjekte auszuwählen, die in die Tabelle eingeschlossen werden sollen. Der Befehl verwendet den Title-Parameter , um einen Titel für die HTML-Seite anzugeben. Der Befehl verwendet außerdem das Out-File
Cmdlet, um den resultierenden HTML-Code an eine Datei mit dem Namen Proc.htm
zu senden.
Der zweite Befehl verwendet das Invoke-Item
Cmdlet, um den Proc.htm
Standardbrowser zu öffnen.
Beispiel 5: Erstellen einer Webseite zum Anzeigen von Dienstobjekten
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" />
...
Mit diesem Befehl wird eine HTML-Seite der vom Cmdlet zurückgegebenen Dienstobjekte Get-Service
erstellt. Der Befehl verwendet den CssUri-Parameter , um ein Cascading Stylesheet für die HTML-Seite anzugeben.
Der CssUri-Parameter fügt dem resultierenden HTML-Code ein zusätzliches <link rel="stylesheet" type="text/css" href="test.css">
Tag hinzu. Das HREF-Attribut im Tag enthält den Namen des Stylesheets.
Beispiel 6: Erstellen einer Webseite zum Anzeigen von Dienstobjekten
Get-Service | ConvertTo-Html -As LIST | Out-File services.htm
Mit diesem Befehl wird eine HTML-Seite der vom Cmdlet zurückgegebenen Dienstobjekte Get-Service
erstellt. Der Befehl verwendet den Parameter "As ", um ein Listenformat anzugeben. Das Cmdlet Out-File
sendet den resultierenden HTML-Code an die Services.htm
Datei.
Beispiel 7: Erstellen einer Webtabelle für das aktuelle Datum
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>
Mit diesem Befehl wird ConvertTo-Html
eine HTML-Tabelle des aktuellen Datums generiert. Der Befehl verwendet das Get-Date
Cmdlet, um das aktuelle Datum abzurufen. Es verwendet einen Pipelineoperator (|
), um die Ergebnisse an das ConvertTo-Html
Cmdlet zu senden.
Der ConvertTo-Html
Befehl enthält den Fragment-Parameter , der die Ausgabe auf eine HTML-Tabelle beschränkt. Daher werden die anderen Elemente einer HTML-Seite, z. B. die <HEAD>
tags <BODY>
, weggelassen.
Beispiel 8: Erstellen einer Webseite zum Anzeigen von PowerShell-Ereignissen
Get-EventLog -Log "Windows PowerShell" | ConvertTo-Html -Property id, level, task
Dieser Befehl verwendet das Get-EventLog
Cmdlet, um Ereignisse aus dem Windows PowerShell-Ereignisprotokoll abzurufen.
Es verwendet einen Pipelineoperator (|
), um die Ereignisse an das ConvertTo-Html
Cmdlet zu senden, wodurch die Ereignisse in das HTML-Format konvertiert werden.
Der ConvertTo-Html
Befehl verwendet den Parameter Property , um nur die EIGENSCHAFTEN ID, Level und Task des Ereignisses auszuwählen.
Beispiel 9: Erstellen einer Webseite zum Anzeigen angegebener Dienste
$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
Dieser Befehl erstellt und öffnet eine Webseite, auf der die Dienste auf dem Computer angezeigt werden, die mit A
. Es verwendet die Parameter "Title", "Body", "PreContent" und "PostContent", um ConvertTo-Html
die Ausgabe anzupassen.
Der erste Teil des Befehls verwendet das Get-Service
Cmdlet, um die Dienste auf dem Computer abzurufen, der mit A
. Der Befehl verwendet einen Pipelineoperator (|
), um die Ergebnisse an das ConvertTo-Html
Cmdlet zu senden. Der Befehl verwendet auch das Out-File
Cmdlet, um die Ausgabe an die Services.htm
Datei zu senden.
Ein Semikolon (;
) beendet den ersten Befehl und startet einen zweiten Befehl, der das Invoke-Item
Cmdlet verwendet, um die Services.htm
Datei im Standardbrowser zu öffnen.
Beispiel 10: Festlegen der Metaeigenschaften und des Zeichensatzes des HTML-Codes
Get-Service | ConvertTo-HTML -Meta @{
refresh=10
author="Author's Name"
keywords="PowerShell, HTML, ConvertTo-HTML"
} -Charset "UTF-8"
Mit diesem Befehl wird der HTML-Code für eine Webseite mit den Metatags für Aktualisierung, Autor und Schlüsselwörter erstellt. Der Zeichensatz für die Seite ist auf UTF-8 festgelegt.
Beispiel 11: Festlegen des HTML-Codes auf XHTML Transition DTD
Get-Service | ConvertTo-HTML -Transitional
Mit diesem Befehl wird der DOCTYPE
zurückgegebene HTML-Code auf XHTML Transitional DTD festgelegt.
Parameter
-As
Bestimmt, ob das Objekt als Tabelle oder Liste formatiert ist. Gültige Werte sind "Table " und "List". Der Standardwert ist "Table".
Der Tabellenwert generiert eine HTML-Tabelle, die dem PowerShell-Tabellenformat ähnelt. Die Kopfzeile zeigt die Eigenschaftennamen an. Jede Tabellenzeile stellt ein Objekt dar und zeigt die Werte des Objekts für jede Eigenschaft.
Der Listenwert generiert eine HTML-Tabelle mit zwei Spalten für jedes Objekt, das dem PowerShell-Listenformat ähnelt. In der ersten Spalte wird der Eigenschaftenname angezeigt. In der zweiten Spalte wird der Eigenschaftswert angezeigt.
Typ: | String |
Zulässige Werte: | Table, List |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Body
Gibt den Text an, der nach dem öffnenden <BODY>
Tag hinzugefügt werden soll. Standardmäßig enthält diese Position keinen Text.
Typ: | String[] |
Position: | 3 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Charset
Gibt Text an, der dem öffnenden <charset>
Tag hinzugefügt werden soll. Standardmäßig enthält diese Position keinen Text.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CssUri
Gibt den Uniform Resource Identifier (URI) des Cascading Style Sheet (CSS) an, das auf die HTML-Datei angewendet wird. Der URI ist in einem Stylesheet-Link in der Ausgabe enthalten.
Typ: | Uri |
Aliase: | cu, uri |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Fragment
Generiert nur eine HTML-Tabelle. Die <HTML>
Tags , <HEAD>
, <TITLE>
und <BODY>
die Tags werden weggelassen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Head
Gibt den Inhalt des <HEAD>
Tags an. Der Standardwert ist <title\>HTML TABLE</title>
. Wenn Sie den Parameter "Head " verwenden, wird der Title-Parameter ignoriert.
Typ: | String[] |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt die Objekte an, die im HTML-Format dargestellt werden. Geben Sie eine Variable ein, die die Objekte enthält, oder geben Sie einen Befehl oder einen Ausdruck ein, durch den die Objekte abgerufen werden.
Wenn Sie diesen Parameter verwenden, um mehrere Objekte, z. B. alle Dienste auf einem Computer, zu übermitteln, wird eine Tabelle erstellt, ConvertTo-Html
die die Eigenschaften einer Auflistung oder eines Arrays von Objekten anzeigt. Um eine Tabelle der einzelnen Objekte zu erstellen, verwenden Sie den Pipelineoperator, um die Objekte an .ConvertTo-Html
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Meta
Gibt Text an, der dem öffnenden <meta>
Tag hinzugefügt werden soll. Standardmäßig enthält diese Position keinen Text.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | Hashtable |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PostContent
Gibt Text an, der nach dem schließenden Tag hinzugefügt werden </TABLE>
soll. Standardmäßig enthält diese Position keinen Text.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-PreContent
Gibt Text an, der vor dem öffnenden <TABLE>
Tag hinzugefügt werden soll. Standardmäßig enthält diese Position keinen Text.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Property
Schließt die angegebenen Eigenschaften der Objekte im HTML-Code ein. Der Wert des Property-Parameters kann eine neue berechnete Eigenschaft sein. Die berechnete Eigenschaft kann ein Skriptblock oder eine Hashtabelle sein. Gültige Schlüsselwertpaare sind:
Name
(oder Bezeichnung) –<string>
(in PowerShell 6.x hinzugefügt)Expression
-<string>
oder<script block>
FormatString
-<string>
Width
-<int32>
- muss größer sein als0
Alignment
- Wert kann ,Left
,Center
oderRight
Weitere Informationen finden Sie unter about_Calculated_Properties.
Typ: | Object[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Title
Gibt einen Titel für die HTML-Datei an, d. h. den Text, der zwischen den <TITLE>
Tags angezeigt wird.
Typ: | String |
Position: | 2 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Transitional
Ändert die DOCTYPE
XHTML-Übergangs-DTD, Standard DOCTYPE
ist XHTML Strict DTD.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können jedes Objekt an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt ein Array von HTML-Zeichenfolgen zurück, die das konvertierte Objekt darstellen.
Hinweise
Um dieses Cmdlet zu verwenden, übergeben Sie ein oder mehrere Objekte an das Cmdlet, oder verwenden Sie den InputObject-Parameter , um das Objekt anzugeben. Wenn die Eingabe aus mehreren Objekten besteht, ist die Ausgabe dieser beiden Methoden sehr unterschiedlich.
Wenn Sie mehrere Objekte an ein Cmdlet weiterleiten, sendet PowerShell die Objekte nacheinander an das Cmdlet. Dadurch wird eine Tabelle erstellt,
ConvertTo-Html
in der die einzelnen Objekte angezeigt werden. Wenn Sie z. B. die Prozesse auf einem Computer an einen ComputerConvertTo-Html
weiterzuführungen, werden in der resultierenden Tabelle alle Prozesse angezeigt.Wenn Sie den InputObject-Parameter verwenden, um mehrere Objekte zu senden,
ConvertTo-Html
empfängt diese Objekte als Auflistung oder als Array. Daher wird eine Tabelle mit dem Array und seinen Eigenschaften erstellt, nicht mit den Elementen im Array. Wenn Sie beispielsweise InputObject verwenden, um die Prozesse auf einem Computer zuConvertTo-Html
übermitteln, zeigt die resultierende Tabelle ein Objektarray und dessen Eigenschaften an.Um die XHTML Strict DTD einzuhalten, wird das
DOCTYPE
Tag entsprechend geändert:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"\>