Windows PowerShell verfügt über einen Satz von Cmdlets, mit dem Sie steuern können, welche Eigenschaften für bestimmte Objekte angezeigt werden. Die Namen dieser Cmdlets beginnen stets mit dem Verb Format. Sie können damit eine oder mehrere Eigenschaften auswählen.

Zu den Format-Cmdlets zählen Format-Wide, Format-List, Format-Table und Format-Custom. Im vorliegenden Benutzerhandbuch werden nur die Cmdlets Format-Wide, Format-List und Format-Table beschrieben.

Alle Format-Cmdlets verfügen über Standardeigenschaften, die verwendet werden, wenn Sie keine speziellen Eigenschaften für die Anzeige angeben. Zudem verwenden alle Cmdlets denselben Parameternamen Property zum Angeben der anzuzeigenden Eigenschaften. Da Format-Wide nur eine Eigenschaft anzeigt, akzeptiert der Property-Parameter nur einen einzelnen Wert, die Property-Parameter von Format-List und Format-Table akzeptieren hingegen auch eine Liste von Eigenschaftennamen.

Wenn Sie den Befehl Get-Process -Name powershell verwenden und zwei Instanzen von Windows PowerShell ausgeführt werden, wird in etwa die folgende Ausgabe angezeigt:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    995       9    30308      27996   152     2.73   2760 powershell
    331       9    23284      29084   143     1.06   3448 powershell

Im verbleibenden Teil dieses Abschnitts erfahren Sie, wie Sie die Anzeige der Ausgabe für diesen Befehl mithilfe von Format-Cmdlets ändern können.

Verwenden von Format-Wide für die Ausgabe einzelner Elemente

Das Cmdlet Format-Wide zeigt standardmäßig nur die Standardeigenschaft eines Objekts an. Die Informationen, die jedem Objekt zugeordnet sind, werden in einer einzelnen Spalte angezeigt:

PS> Get-Process -Name powershell | Format-Wide

powershell                              powershell

Sie können auch eine andere Eigenschaft als die Standardeigenschaft angeben:

PS> Get-Process -Name powershell | Format-Wide -Property Id

2760                                    3448

Steuern der Anzeige von Format-Wide mit einer Spalte

Mit dem Cmdlet Format-Wide können Sie jeweils nur eine Eigenschaft anzeigen. Dies macht es zu einem hilfreichen Tool für die Anzeige einfacher Listen mit jeweils nur einem Element pro Zeile. Zum Abrufen einer einfachen Auflistung legen Sie den Wert des Column-Parameters auf 1 fest, indem Sie Folgendes eingeben:

Get-Command Format-Wide -Property Name -Column 1

Verwenden von Format-List zum Anzeigen einer Listenansicht

Mit dem Cmdlet Format-List wird ein Objekt als Liste angezeigt, wobei jede Eigenschaft bezeichnet und in einer eigenen Zeile angezeigt wird:

PS> Get-Process -Name powershell | Format-List

Id      : 2760
Handles : 1242
CPU     : 3.03125
Name    : powershell

Id      : 3448
Handles : 328
CPU     : 1.0625
Name    : powershell

Sie können beliebig viele Eigenschaften angeben:

PS> Get-Process -Name powershell | Format-List -Property ProcessName,FileVersion
,StartTime,Id


ProcessName : powershell
FileVersion : 1.0.9567.1
StartTime   : 2006-05-24 13:42:00
Id          : 2760

ProcessName : powershell
FileVersion : 1.0.9567.1
StartTime   : 2006-05-24 13:54:28
Id          : 3448

Abrufen detaillierter Informationen mit Format-List und Platzhaltern

Das Cmdlet Format-List ermöglicht die Verwendung eines Platzhalters für den Wert des Property-Parameters. Damit können Sie detaillierte Informationen anzeigen. Häufig enthalten Objekte mehr Informationen als benötigt, daher zeigt Windows PowerShell standardmäßig nicht alle Eigenschaftenwerte an. Wenn Sie alle Eigenschaften eines Objekts anzeigen möchten, verwenden Sie den Befehl Format-List -Property * . Mit dem folgenden Befehl werden mehr als 60 Ausgabezeilen für einen einzelnen Prozess generiert:

Get-Process -Name powershell | Format-List -Property *

Der Befehl Format-List ist beim Anzeigen von Details hilfreich. Wenn Sie allerdings eine Übersicht über eine Ausgabe mit vielen Elementen benötigen, ist eine einfachere tabellarische Ansicht häufig sinnvoller.

Verwenden von Format-Table für eine tabellarische Ausgabe

Wenn Sie das Cmdlet Format-Table verwenden und zum Formatieren der Ausgabe für den Befehl Get-Process keine Eigenschaftennamen angeben, ist die Ausgabe mit einer Ausgabe ohne Formatierung identisch. Die Ursache hierfür ist, dass Prozesse i. d. R. in tabellarischer Form angezeigt werden. Dies gilt übrigens für die meisten Windows PowerShell-Objekte.

PS> Get-Process -Name powershell | Format-Table

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   1488       9    31568      29460   152     3.53   2760 powershell
    332       9    23140        632   141     1.06   3448 powershell

Verbessern der Ausgabe für Format-Table (AutoSize)

Die tabellarische Ansicht ist für die Anzeige von vergleichbaren Informationen sehr hilfreich. Wenn die Anzeige allerdings schmal ist, wird die Auswertung der Daten allerdings schwierig. Wenn Sie z. B. den Prozesspfad, die ID, den Namen und die Firma anzeigen möchten, wird die Ausgabe der Spalten mit dem Prozesspfad und der Firma abgeschnitten:

PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company

Path                Name                                 Id Company
----                ----                                 -- -------
C:\Program Files... powershell                         2836 Microsoft Corpor...

Wenn Sie bei der Ausführung des Befehls Format-Table den AutoSize-Parameter angeben, berechnet Windows PowerShell die Spaltenbreite anhand der tatsächlich anzuzeigenden Daten. Dadurch wird die Spalte Path besser lesbar, die Spalte "Company" wird allerdings weiterhin abgeschnitten:

PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company -
AutoSize

Path                                                    Name         Id Company
----                                                    ----         -- -------
C:\Program Files\Windows PowerShell\v1.0\powershell.exe powershell 2836 Micr...

Das Cmdlet Format-Table schneidet die Daten möglicherweise auch weiterhin ab, dies erfolgt jedoch ausschließlich am Rand des Bildschirms. Mit Ausnahme der letzten Eigenschaft werden alle Eigenschaften in der für das längste Datenelement erforderlichen Spaltenbreite angezeigt. Damit wird die ordnungsgemäße Darstellung der Daten sichergestellt. Wenn Sie die Positionen von Path und Company in der Property-Werteliste vertauschen, ist der Firmennamen sichtbar, der Pfad ist jedoch abgeschnitten:

PS> Get-Process -Name powershell | Format-Table -Property Company,Name,Id,Path -
AutoSize

Company               Name         Id Path
-------               ----         -- ----
Microsoft Corporation powershell 2836 C:\Program Files\Windows PowerShell\v1...

Beim Befehl Format-Table wird davon ausgegangen, dass eine Eigenschaft umso wichtiger ist, je weiter vorn sie in der Eigenschaftenliste steht. Daher versucht dieser Befehl, die Eigenschaften am Anfang der Liste möglichst vollständig anzuzeigen. Wenn mit dem Befehl Format-Table nicht alle Eigenschaften angezeigt werden können, werden einige Spalten aus der Anzeige entfernt, und es wird eine Warnung angezeigt. Dieses Verhalten können Sie überprüfen, indem Sie die Name-Eigenschaft am Ende der Liste platzieren:

PS> Get-Process -Name powershell | Format-Table -Property Company,Path,Id,Name -
AutoSize

WARNING: column "Name" does not fit into the display and was removed.

Company               Path                                                    I
                                                                              d
-------               ----                                                    -
Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\powershell.exe 6

In der oben stehenden Ausgabe wurde die Spalte "ID" abgeschnitten, um Sie in die Auflistung einzupassen. Außerdem wird die Spalteüberschrift auf zwei Zeilen dargestellt. Die automatische Größenanpassung der Spalten führt nicht immer zum gewünschten Ergebnis.

Umbrechen der Ausgabe von Format-Table in Spalten (Wrap)

Mit dem Wrap-Parameter können Sie das Umbrechen längerer Format-Table-Daten in der Anzeigespalte erzwingen. Wenn Sie nur den Wrap-Parameter verwenden, wird das Ergebnis möglicherweise nicht Ihren Erwartungen entsprechen, da dabei die Standardeinstellungen verwendet werden, sofern Sie nicht auch den AutoSize-Parameter angeben:

PS> Get-Process -Name powershell | Format-Table -Wrap -Property Name,Id,Company,
Path

Name                                 Id Company             Path
----                                 -- -------             ----
powershell                         2836 Microsoft Corporati C:\Program Files\Wi
                                        on                  ndows PowerShell\v1
                                                            .0\powershell.exe 

Ein Vorteil der eigenständigen Verwendung des Wrap-Parameters besteht in der geringen Beeinträchtigung der Verarbeitungsgeschwindigkeit. Wenn Sie eine rekursive Dateiauflistung eines umfangreichen Verzeichnissystems ausführen und nicht den AutoSize-Parameter verwenden, kann der Vorgang eine sehr lange Zeit in Anspruch nehmen und viel Arbeitsspeicher beanspruchen, bevor die ersten Ausgabeelemente angezeigt werden.

Wenn die Systemauslastung kein Problem darstellt, kann AutoSize gut mit dem Wrap-Parameter zusammen verwendet werden. Den ersten Spalten wird stets eine ausreichende Breite für die Anzeige der Elemente auf einer Zeile reserviert. Dies entspricht der Angabe von AutoSize ohne den Wrap-Parameter. Der einzige Unterschied besteht darin, dass die letzte Spalte ggf. umbrochen wird:

PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I
d,Company,Path

Name         Id Company               Path
----         -- -------               ----
powershell 2836 Microsoft Corporation C:\Program Files\Windows PowerShell\v1.0\
                                      powershell.exe

Einige Spalte werden möglicherweise nicht angezeigt, wenn Sie als erstes die breitesten Spalten angeben. Sie sollten zur Sicherheit als erstes die kleinsten Datenelemente angeben. Im folgenden Beispiel wird zuerst das sehr umfangreiche Path-Element angegeben. Trotz Umbruchs kann die letzte Spalte Name nicht angezeigt werden:

 PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Path,I
d,Company,Name

WARNING: column "Name" does not fit into the display and was removed.

Path                                                      Id Company
----                                                      -- -------
C:\Program Files\Windows PowerShell\v1.0\powershell.exe 2836 Microsoft Corporat
                                                             ion

Organisieren der tabellarischen Ausgabe ("-GroupBy")

Ein weiterer hilfreicher Parameter zum Steuern der tabellarischen Ausgabe ist GroupBy. Insbesondere umfangreiche tabellarische Auflistungen sind z. T. schwer zu vergleichen. Mit dem GroupBy-Parameter wird die Ausgabe anhand eines Eigenschaftenwerts gruppiert. Sie können z. B. Prozesse nach Firma gruppieren, um eine Inspektion zu vereinfachen, indem Sie den Wert "company" in der Eigenschaftenliste auslassen:

PS> Get-Process -Name powershell | Format-Table -Wrap -AutoSize -Property Name,I
d,Path -GroupBy Company


   Company: Microsoft Corporation

Name         Id Path
----         -- ----
powershell 1956 C:\Program Files\Windows PowerShell\v1.0\powershell.exe
powershell 2656 C:\Program Files\Windows PowerShell\v1.0\powershell.exe




Inhaltsverzeichnis