Grundlagen zum Speichern der PowerShell Ausgaben
Eine PowerShell Ausgabe in Datei weiterleiten, ist eine Aufgabe, welche man als Administrator im Prinzip oft durchführen muss. Man denke dabei nur an Logfiles.
In der Regel gibt die PowerShell die Ergebnisse auf dem Bildschirm aus. Möchte man die Ausgabe in eine Textdatei speichern, reicht es, wenn man das Cmdlet out-file verwendet. Aber es funktioniert ebenso, wenn man den Weiterleitungsoperator > benützt.
Möchte man die Ergebnisse jedoch als CSV, XML oder HTML speichern, so bietet die PowerShell die drei folgenden Cmdlets. Export-CSV, Export-CliXML und Convertto-html.
Natürlich gibt es neben dem Export auch einen Import. Man kann also genauso gut Inhalte aus CSV oder XML in die PowerShell einlesen.
In den folgenden Beispielen wird für die Weitergabe der Ergebnisse die Pipeline verwendet. Wie man die bei einer Befehlskette anwendet, könnt ihr hier nachlesen.
PowerShell Ausgabe in Datei speichern, z.B. TXT, CSV und XML
Ein kleines Beispiel soll die Funktionsweise erläutern. Zunächst lassen wir uns die ersten 6 Prozesse anzeigen, welche am meisten CPU Zeit verbrauchen. Das Ergebnis speichern wir anschließend in eine Variable $P. Anschließend speichern wir die Inhalte einmal als Prozesse.txt, Prozesse.csv und Prozesse.xml Datei ab.
$P = get-process | Sort-Object CPU -Descending | Select-Object -First 6
$P > f:\Prozesse.txt
$P | Export-Csv f:Prozesse.csv
$P | Export-Clixml f:Prozesse.xml

Beispiel für HTML
Relativ einfach geht auch das Speichern in eine HTML-Datei. Man verwendet hierzu das Cmdlet convertto-html.
$P | ConvertTo-Html > f:\Prozesse.html
Da dies eine sehr unübersichtliche Anordnung aller Eigenschaften der Prozesse ist, wäre es sinnvoll nur bestimmte Parameter auszugeben. In unserem Fall lassen wir nur den Namen, Path und CPU ausgeben und in ein HTML Dokument speichern.
$P | ConvertTo-Html -Property Name, Path, CPU > f:\Prozesse.html

Das Speichern der Ausgabe als HTML bietet wunderschöne Möglichkeiten. Man könnte sich z. B. alle Dienste nach deren Status in unterschiedlichen Farben ausgeben lassen. Für den Einsatz von Farben muss man lediglich den <tr> Tag ersetzen und ihn mit einer Farbe belegen.
Für die Fallunterscheidung, ob der Status nun läuft oder nicht, kann man -like verwenden. Wer noch ein paar Grundlagen-Informationen zu Schleifen und Bedingungen benötigt, kann diese hier nachlesen.
get-service | ConvertTo-Html -Property Name,Status | foreach { if ($_ -like "*<td>Running</td>*") {$_ -replace "<tr>", "<tr bgcolor=green >"} else {$_ -replace "<tr>", "<tr bgcolor=red>"}} > f:\get-service.html

Dieses und weitere Skripte findest du direkt auf Github zum kostenlosen Downloaden. Um eine PowerShell Ausgabe in Datei weiterzuleiten oder zu speichern, gibt es wieder einfache Cmdlets, welche hierfür angewendet werden können. Hier zeigt sich wieder der große Vorteil der Windows PowerShell.
Mehr PowerShell gibt es in folgenden Udemy Kursen?
Das könnte dich auch interessieren:
- So kann man viele Wiederholungen in der PowerShell mit einer for Schleife lösen
- Was ist eine IF-Anweisung in der Windows PowerShell und wie wendet man diese an!
- Mit der Windows PowerShell die Differenz zwischen zwei Datumsangaben berechnen
- Eine Fallunterscheidung in der Windows PowerShell erstellen
- Wie erstellt man mithilfe der Windows PowerShell ein Array und liest dieses auch aus?
Empfehlenswerte Literatur zur Windows PowerShell
Keine Produkte gefunden.










