Verwenden des Cmdlet \"ConvertTo-Html\"

Speichern von Daten als HTML-Datei

Nichts gegen das Konsolenfenster oder eine Textdatei, aber manchmal braucht man einfach HTML als Ausgabeformat (unter anderem auch deshalb, weil HTML mehr Optionen in Hinblick auf die Formatierung sowie eine höhere Flexibilität bietet). Glücklicherweise ist es mit dem Cmdlet ConvertTo-Html ganz einfach, Windows PowerShell-Ausgaben auf einer Webseite anzuzeigen. So wird im nachfolgenden Befehl das Cmdlet Get-Process verwendet, um Informationen über alle auf dem Computer ausgeführten Prozesse zu erhalten. Die Ausgabe von Get-Process wird an das Cmdlet ConvertTo-Html weitergereicht, das aus diesen Daten eine HTML-Tabelle erstellt. Diese Tabelle wiederum wird an das Cmdlet Set-Content weitergereicht, das die Informationen als Webseite abspeichert ("C:\Scripts\Test.htm"). Das hört sich nach sehr viel Arbeit an, der Befehl ist jedoch ganz einfach:

Get-Process | ConvertTo-Html | Set-Content c:\scripts\test.htm

Die daraus entstehende Webseite sieht etwa wie folgt aus:

Windows PowerShell

Nicht schlecht. Aber die Tabelle ist etwas unhandlich. Das liegt daran, dass Get-Process sehr viele Eigenschaften zurückgegeben hat, die in entsprechend viele Tabellenspalten umgewandelt wurden. Der folgende überarbeitete Befehl begrenzt die in der Tabelle angezeigten Eigenschaften auf Name, Pfad und Dateiversion:

Get-Process | ConvertTo-Html name,path,fileversion | Set-Content c:\scripts\test.htm

Unsere vereinfachte Webseite sieht jetzt wie folgt aus:

Windows PowerShell

Sehr viel besser.

Aber nicht perfekt. Standardmäßig lautet der der Webseite zugewiesene Titel recht unspektakulär "HTML Table". Aus diesem Grund verwendet der folgende Befehl den Parameter –title, um den Fenstertitel in "Process Information" zu ändern:

Get-Process | ConvertTo-Html name,path,fileversion -title "Process Information" | Set-Content c:\scripts\test.htm

Windows PowerShell

Damit gehen wir in jedem Fall in die richtige Richtung.

Wir nehmen noch eine letzte Anpassung vor. Wie Sie sehen, ist die einzige Information, die auf unserer Webseite angezeigt wird, die Datentabelle. Wenn Sie der Tabelle ein paar einführende Erklärungen voranstellen wollen, fügen Sie einfach den Parameter –body ein, gefolgt von dem Text, der auf der Seite ausgegeben werden soll:

Get-Process | 
ConvertTo-Html name,path,fileversion -title "Process Information" -body "Information about the processes running on the computer." | 
Set-Content c:\scripts\test.htm

Zugegeben, wir haben hier kaum etwas gewonnen. Aber zumindest bietet Ihnen die resultierende Webseite eine Idee, was alles möglich ist:

Windows PowerShell

Wir möchten auch darauf hinweisen, dass Informationen, die mit Hilfe des Parameters –body konfiguriert werden, in HTML formatiert sind, d. h. der Parameter darf beliebige gültige HTML-Tags enthalten. Wollen Sie Ihr Vorwort im <H2>-Stil darstellen? Nehmen Sie einfach die Tags <H2> und </H2> auf:

Get-Process | 
ConvertTo-Html name,path,fileversion -title "Process Information" -body "<H2>Information about the processes running on the computer.</H2>" | 
Set-Content c:\scripts\test.htm

Graphisch dargestellt:

Windows PowerShell

Wenn Sie sich je gefragt haben, warum die Skripting-Leute keine Webseiten-Designer sind, sehen Sie sich einfach den Screenshot in Abbildung A an. Aber nachdem Sie wissen, wie ConvertTo-HTML funktioniert, können Sie es besser machen.