ConvertTo-Html

Konvertiert .NET-Objekte in HTML, die in einem Webbrowser angezeigt werden kann.

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.

Sie können die Parameter ConvertTo-Html verwenden, um Objekteigenschaften auszuwählen, eine Tabelle oder ein Listenformat anzugeben, den HTML-Seitentitel anzugeben, Text vor und nach dem Objekt hinzuzufügen und nur das Tabellen- oder Listenfragment anstelle einer strengen DTD-Seite zurückzugeben.

Wenn Sie mehrere Objekte an ConvertTo-Htmlsenden, 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

Dieser Befehl erstellt eine HTML-Seite, auf der die PowerShell-Aliase in der aktuellen Konsole aufgelistet werden.

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 erstelltpslog.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 dann den Pipelineoperator (|) zum Senden der Ereignisse an das ConvertTo-Html Cmdlet zu verwenden. 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 Eigenschaftsparameter , um drei Eigenschaften der Prozessobjekte auszuwählen, die in der Tabelle enthalten sein sollen. Der Befehl verwendet den Title-Parameter , um einen Titel für die HTML-Seite anzugeben. Der Befehl verwendet auch das Out-File Cmdlet, um den resultierenden HTML-Code an eine Datei mit dem Namen " Proc.htm.

Der zweite Befehl verwendet das Cmdlet, um das Invoke-ItemProc.htm Cmdlet im 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" />
...

Dieser Befehl erstellt eine HTML-Seite der Dienstobjekte, die das Get-Service Cmdlet zurückgibt. 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

Dieser Befehl erstellt eine HTML-Seite der Dienstobjekte, die das Get-Service Cmdlet zurückgibt. 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 ConvertTo-Html wird 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 wie die <HEAD>- und <BODY>-Tags ausgelassen.

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 der angegebenen 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

Mit diesem Befehl wird eine Webseite erstellt und geöffnet, auf der die Dienste auf dem Computer angezeigt werden, auf dem der Computer beginnt A. Es verwendet die Parameter ConvertTo-Html"Title", "Body", "PreContent" und "PostContent", um die Ausgabe anzupassen.

Der erste Teil des Befehls verwendet das Get-Service Cmdlet, um die Dienste auf dem Computer abzurufen, auf dem dies beginnt 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 Charsets 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

Dieser Befehl legt den DOCTYPE zurückgegebenen HTML-Code auf XHTML Transition DTD fest.

Parameter

-As

Bestimmt, ob das Objekt als Tabelle oder Liste formatiert ist. Gültige Werte sind Tabelle und Liste. 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 List-Wert generiert eine zweispaltige HTML-Tabelle für jedes Objekt, das dem PowerShell-Listenformat ähnelt. In der ersten Spalte wird der Eigenschaftsname angezeigt. In der zweiten Spalte wird der Eigenschaftswert angezeigt.

Type:String
Accepted values:Table, List
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Body

Gibt den Text an, der nach dem <BODY>-Starttag hinzugefügt wird. Standardmäßig enthält diese Position keinen Text.

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Uri
Aliases:cu, uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Fragment

Generiert nur eine HTML-Tabelle. Die <HTML>, <HEAD>, <TITLE>, und <BODY> Tags werden nicht angegeben.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Head

Gibt den Inhalt des <HEAD>-Tags an. Der Standardwert lautet <title\>HTML TABLE</title>. Wenn Sie den Head-Parameter verwenden, wird der Title-Parameter ignoriert.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 zu übermitteln, z. B. alle Dienste auf einem Computer, ConvertTo-Html erstellt eine Tabelle, 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.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:Hashtable
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PostContent

Gibt Text an, der nach dem </TABLE>-Endtag hinzugefügt wird. Standardmäßig enthält diese Position keinen Text.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PreContent

Gibt den Text an, der vor dem <TABLE>-Starttag hinzugefügt wird. Standardmäßig enthält diese Position keinen Text.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

Schließt die angegebenen Eigenschaften der Objekte im HTML-Code ein. Der Wert des Eigenschaftsparameters 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 als 0
  • Alignment- Wert kann Left, oder CenterRight

Weitere Informationen finden Sie unter about_Calculated_Properties.

Type:Object[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Title

Gibt einen Titel für die HTML-Datei an, d. h. den Text zwischen den <TITLE>-Tags.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Transitional

Ändert die Änderungen an DOCTYPEXHTML Transition DTD, Default DOCTYPE is XHTML Strict DTD.

Dieser Parameter wurde in PowerShell 6.0 eingeführt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

PSObject

Sie können jedes .NET-Objekt an ConvertTo-Html.

Ausgaben

System.String or System.Xml.XmlDocument

ConvertTo-Html gibt Eine Reihe von Zeichenfolgen zurück, die gültige HTML-Code enthalten.

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 gleichzeitig an das Cmdlet. Dadurch wird eine Tabelle erstellt, ConvertTo-Html in der die einzelnen Objekte angezeigt werden. Wenn Sie beispielsweise die Prozesse auf einem Computer an einen Computer ConvertTo-Htmlweitergeleitet haben, zeigt die resultierende Tabelle alle Prozesse an.

  • Wenn Sie den InputObject-Parameter zum Übermitteln mehrerer Objekte verwenden, 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 zum Übermitteln der Prozesse auf einem Computer ConvertTo-Htmlverwenden, 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"\>