In herkömmlichen Shellumgebungen wird das Format der Ausgabe vom jeweiligen Tool oder Befehl bestimmt. Bei einigen Tools kann die Ausgabe angepasst und über spezielle Parameter gesteuert werden.

In Windows PowerShell werden Ausgaben grundsätzlich mit den Format-Cmdlets formatiert:

  • Format-List

  • Format-Custom

  • Format-Table

  • Format-Wide

Die anderen Cmdlets formatieren Ausgaben nicht selbst. Daher müssen Sie nicht Formatierungsverfahren und -parameter für mehrere Tools lernen. Sie müssen sich nur mit den Format-Cmdlets und deren Parametern vertraut machen.

Beim Ausführen eines Befehls ruft Windows PowerShell abhängig vom Typ der angezeigten Daten das zugehörige Standardformatierungsprogramm auf. Das Formatierungsprogramm legt fest, welche Eigenschaften der Ausgabedaten angezeigt werden, und ob die Ausgabe als Liste oder Tabelle erfolgt.

So erfolgt z. B. beim Cmdlet "Get-Service" die Ausgabe standardmäßig als Tabelle mit drei Spalten, wie im Folgenden gezeigt:

C:\PS> get-service
Status   Name               DisplayName
------   ----               -----------
Running  AdtAgent           Event Forwarder
Stopped  Alerter            Alerter
Running  ALG                Application Layer Gateway Service

Wenn Sie die Ausgaben eines beliebigen Cmdlets anders formatieren möchten, senden Sie die Befehlsausgabe mit dem Pipelineoperator (|) an ein Format-Cmdlet.

So wird z. B. mit dem folgenden Befehl die Ausgabe des Befehls "Get-Service" an das Cmdlet "Format-List" gesendet. Dadurch werden die Dienstdaten als Liste für jeden Dienst formatiert.

C:\PS> get-service | format-list
Name                : AdtAgent
DisplayName         : Event Forwarder
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {eventlog, dnscache}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess

Name                : Alerter
DisplayName         : Alerter
Status              : Stopped
DependentServices   : {}
ServicesDependedOn  : {LanmanWorkstation}
CanPauseAndContinue : False
CanShutdown         : False
CanStop             : False
ServiceType         : Win32ShareProcess

Name                : ALG
DisplayName         : Application Layer Gateway Service
Status              : Running
DependentServices   : {}

In diesem Format werden die Daten nicht nur statt als Tabelle als Liste angezeigt, sondern es sind auch mehr Informationen zu jedem Dienst verfügbar. Statt drei Datenspalten pro Dienst sind nun neun Datenzeilen vorhanden. Die zusätzlichen Dienstinformationen wurden von Format-List nicht abgerufen. Die Daten waren bereits zuvor in den von Get-Service abgerufenen Objekten verfügbar, wurden jedoch vom Standardformatierungsprogramm Format-Table nicht angezeigt, da der Bildschirm nur Platz für drei Spalten bietet.

Sie können nicht nur festlegen, ob die Daten als Liste oder Tabelle ausgegeben werden, sondern auch, welche Eigenschaften des Objekts angezeigt werden. So werden z. B. in der Standardausgabe von Get-Service nur die Eigenschaften Status, Name und DisplayName des Dienstobjekts angezeigt.

Wenn alle Eigenschaften eines Objekts angezeigt werden sollen, senden Sie die Ergebnisse eines Befehls mit einem Pipelineoperator (|) an das Cmdlet "Get-Member". Wenn Sie beispielsweise alle Eigenschaften eines Dienstobjekts anzeigen möchten, geben Sie Folgendes ein:

get-service | get-member -membertype *property

   TypeName: System.ServiceProcess.ServiceController

Name                MemberType    Definition
----                ----------    ----------
Name                AliasProperty Name = ServiceName
CanPauseAndContinue Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown         Property      System.Boolean CanShutdown {get;}
CanStop             Property      System.Boolean CanStop {get;}
Container           Property      System.ComponentModel.IContainer Container {get;}
DependentServices   Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName         Property      System.String DisplayName {get;set;}
MachineName         Property      System.String MachineName {get;set;}
ServiceHandle       Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName         Property      System.String ServiceName {get;set;}
ServicesDependedOn  Property      System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType         Property      System.ServiceProcess.ServiceType ServiceType {get;}
Site                Property      System.ComponentModel.ISite Site {get;set;}
Status              Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Da alle diese Eigenschaften in dem Objekt enthalten sind, das Get-Service für die einzelnen Dienste abruft, können Sie beliebige oder alle Eigenschaften anzeigen. Mit dem Property-Parameter des Format-Cmdlets können Sie die anzuzeigenden Eigenschaften und die Anzeigereihenfolge festlegen. So werden beispielsweise im folgenden Befehl mit dem Befehl Format-Table nur die Eigenschaften Name, ServiceType und CanShutDown des Diensts angezeigt.

get-service | format-table name, Servicetype, Canshutdown

Dies ist nur ein kleiner Ausschnitt der Möglichkeiten, die für die Anzeige von Ausgabedaten in Windows PowerShell zur Verfügung stehen. Weitere Informationen zu den Format-Cmdlets erhalten Sie mit folgenden Befehlen:

get-help format-list
get-help format-table
get-help format-wide
get-help format-custom




Inhaltsverzeichnis