Steuern der Formatierung der Pipelineausgabe

Abgeschlossen

PowerShell bietet verschiedene Möglichkeiten zum Steuern der Formatierung der Pipelineausgabe. Die Standardformatierung der Ausgabe hängt von den Objekten ab, die in der Ausgabe vorhanden sind, und von den Konfigurationsdateien, die die Ausgabe definieren. Nachdem PowerShell ein geeignetes Format ausgewählt hat, wird die Ausgabe ohne Ihre Eingabe an eine Reihe von Formatierungs-Cmdlets übergeben.

Bei den Formatierungs-Cmdlets handelt es sich um die folgenden:

  • Format-List
  • Format-Table
  • Format-Wide
  • Format-Custom

Sie können die Standardausgabeformatierung außer Kraft setzen, indem Sie eines der vorherigen Cmdlets als Teil der Pipeline angeben.

Hinweis

Das Cmdlet Format-Custom erfordert das Erstellen benutzerdefinierter XML-Konfigurationsdateien, die das Format definieren. Es wird selten verwendet und geht über den Umfang dieses Kurses hinaus.

Jedes Formatierungs-Cmdlet akzeptiert den Parameter -Property. Der Parameter -Property akzeptiert eine durch Kommas getrennte Liste der Eigenschaftennamen. Er filtert dann die Liste der angezeigten Eigenschaften sowie die Reihenfolge, in der sie angezeigt werden. Beachten Sie beim Angeben von Eigenschaftennamen für diesen Parameter, dass der ursprüngliche Befehl diese Eigenschaften zurückgegeben haben muss.

Das Cmdlet Get-ADUser gibt beispielsweise nur eine Teilmenge von Eigenschaften zurück, es sei denn, Sie geben seinen Parameter -Properties an. Wenn Sie daher die Eigenschaft City im Parameter -Property für ein Formatierungs-Cmdlet angeben, wird dieser angezeigt, als ob die Eigenschaft nicht festgelegt ist, es sei denn, Sie stellen sicher, dass die Eigenschaft City eine der für die Benutzer*innen abgefragten Eigenschaften ist.

Einige Cmdlets übergeben standardmäßig eine andere Gruppe von Eigenschaften für jedes Formatierungs-Cmdlet. Beispielsweise zeigt das Cmdlet Get-Service standardmäßig drei Eigenschaften in einem Tabellenformat an: Status, Name und DisplayName. Wenn Sie die Ausgabe von Get-Service als Liste anzeigen, indem Sie den Befehl Get-Service | Format-List verwenden, werden sechs zusätzliche Eigenschaften angezeigt.

Format-List

Das Cmdlet Format-List formatiert, wie der Name angibt, die Ausgabe eines Befehls als einfache Liste mit Eigenschaften, in der jede Eigenschaft in einer neuen Zeile angezeigt wird. Wenn der Befehl, der die Ausgabe an Format-List übergibt, mehrere Objekte zurückgibt, wird eine separate Liste mit Eigenschaften für jedes Objekt angezeigt. Die Listenformatierung ist besonders nützlich, wenn ein Befehl eine große Anzahl von Eigenschaften zurückgibt, die im Tabellenformat schwer zu überprüfen wären.

Hinweis

Der Alias für das Cmdlet Format-List lautet fl.

Um eine einfache Liste der Standardeigenschaften für die Prozesse, die auf dem lokalen Computer ausgeführt werden, in der Konsole anzuzeigen, geben Sie den folgenden Befehl ein, und drücken Sie dann die EINGABETASTE:

Get-Process | Format-List 

Format-Table

Das Cmdlet Format-Table formatiert die Ausgabe als Tabelle, in der jede Zeile ein Objekt und jede Spalte eine Eigenschaft darstellt. Das Tabellenformat ist nützlich zum gleichzeitigen Anzeigen von Eigenschaften vieler Objekte und zum Vergleichen der Eigenschaften dieser Objekte.

Standardmäßig enthält die Tabelle die Eigenschaftennamen als Spaltenüberschriften, die von den Daten durch eine Reihe von Strichen getrennt sind. Die Formatierung der Tabelle hängt von den zurückgegebenen Objekten ab. Sie können diese Formatierung mithilfe einer Vielzahl von Parametern ändern, wie z. B.:

  • -AutoSize Dieser Parameter passt die Größe und Anzahl der Spalten basierend auf der Datenbreite an. In Windows PowerShell 5.0 und neuer wird -AutoSize standardmäßig auf true festgelegt. Bei älteren Versionen von Windows PowerShell können die Standardwerte Daten in der Tabelle abschneiden.
  • -HideTableHeaders Dieser Parameter entfernt die Tabellenüberschriften aus der Ausgabe.
  • -Wrap Dieser Parameter verursacht bei Text, der breiter als die Spaltenbreite ist, einen Zeilenumbruch auf die nächste Zeile.

Hinweis

Der Alias für das Cmdlet Format-Table lautet ft.

Wenn Sie die Eigenschaften Name, ObjectClass und Description für alle Windows Server Active Directory-Objekte als Tabelle anzeigen möchten, in der die Größe der Spalten automatisch angepasst und beim Text Zeilenumbrüche durchgeführt werden, geben Sie den folgenden Befehl in der Konsole ein, und drücken Sie dann die EINGABETASTE:

Get-ADObject -filter * -Properties * | ft -Property Name, ObjectClass, Description -AutoSize -Wrap

Format-Wide

Das Cmdlet Format-Wide gibt eine einzelne Eigenschaft in einer einzelnen Liste aus, die in mehreren Spalten angezeigt wird. Dieses Cmdlet funktioniert wie der Parameter /w des Befehls dir in cmd.exe. Das breite Format ist nützlich, um große Listen einfacher Daten in einem kompakten Format anzuzeigen, z. B. die Namen von Dateien oder Prozessen.

Standardmäßig zeigt Format-Wide die Ausgabe in zwei Spalten an. Sie können die Anzahl der Spalten mithilfe des Parameters -Column ändern. Der Parameter -AutoSize, der auf die gleiche Weise funktioniert wie für Format-Table, ist ebenfalls verfügbar. Sie können -AutoSize und -Column jedoch nicht zusammen verwenden. Der Parameter -Property ist ebenfalls verfügbar, kann aber im Falle von Format-Wide nur einen Eigenschaftennamen akzeptieren.

Hinweis

Der Alias für das Cmdlet Format-Wide lautet fw.

Um die Eigenschaft DisplayName aller Gruppenrichtlinienobjekte (Group Policy Objects, GPOs) in der aktuellen Domäne als Ausgabe in drei Spalten zu senden, geben Sie den folgenden Befehl in der Konsole ein, und drücken Sie dann die EINGABETASTE:

Get-GPO -all | fw -Property DisplayName -Column 3