THEMA
    about_Format.ps1xml

KURZBESCHREIBUNG
    In den Format.ps1xml-Dateien von Windows PowerShell ist die 
    Standardanzeige von Objekten in der Windows PowerShell-Konsole 
    definiert. Sie können eigene Format.ps1xml-Dateien erstellen, um 
    die Anzeige von Objekten zu ändern oder Standardanzeigen für 
    neue, in Windows PowerShell erstellte Objekttypen zu definieren.

DETAILBESCHREIBUNG
    In den Format.ps1xml-Dateien von Windows PowerShell ist die 
    Standardanzeige von Objekten in Windows PowerShell definiert. Sie 
    können eigene Format.ps1xml-Dateien erstellen, um die Anzeige von 
    Objekten zu ändern oder Standardanzeigen für neue, in Windows 
    PowerShell erstellte Objekttypen zu definieren.


    Wenn in Windows PowerShell ein Objekt angezeigt wird, wird anhand 
    von Daten in strukturierten Formatierungsdateien die 
    Standardanzeige des Objekts bestimmt. Die Daten in den 
    Formatierungsdateien bestimmen, ob das Objekt in einer Tabelle 
    oder einer Liste gerendert wird, und welche Eigenschaften 
    standardmäßig angezeigt werden. 


    Die Formatierung wirkt sich nur auf die Anzeige aus. Sie 
    beeinflusst nicht die Eigenschaften, die über die Pipeline 
    übergeben werden, oder wie diese übergeben werden.


    Windows PowerShell umfasst sieben Formatierungsdateien. Diese 
    Dateien befinden sich im Installationsverzeichnis ("$pshome"). 
    In jeder Datei ist die Anzeige einer Gruppe von Microsoft .NET 
    Framework-Objekten definiert:


	Certificate.Format.ps1xml
            Objekte im Zertifikatspeicher, z. B. X.509-Zertifikate 
            und Zertifikatspeicher.

	DotNetTypes.Format.ps1xml
            Andere .NET Framework-Typen, z. B. die Objekte 
            CultureInfo, FileVersionInfo und EventLogEntry.

	FileSystem.format.ps1xml
            Dateisystemobjekte, z. B. Dateien und Verzeichnisse.

	Help.Format.ps1xml
            Hilfsansichten, z. B. ausführliche und vollständige 
            Ansichten, Parameter und Beispiele.

	PowerShellCore.format.ps1xml
            Von den Kern-Cmdlets von Windows PowerShell generierte 
            Objekte, z. B. Get-Member und Get-History.

	PowerShellTrace.format.ps1xml
            Nachverfolgungsobjekte, z. B. solche, die vom Cmdlet 
            "Trace-Command" generiert wurden.

	Registry.format.ps1xml 
            Registrierungsobjekte, z. B. Schlüssel und Einträge.


    In einer Formatierungsdatei können vier verschiedene Ansichten 
    jedes Objekts definiert sein: Tabellenansicht, Listenansicht, 
    Breitformat und Detailansicht. Wenn die Ausgabe des Befehls 
    "Get-ChildItem" z. B. über die Pipeline an den Befehl 
    "Format-List" übergeben wird, verwendet Format-List die Ansicht 
    in der Datei "FileSystem.format.ps1xml", um zu bestimmen, wie die 
    Datei- und Ordnerobjekte als Liste angezeigt werden.


    In Format.ps1xml-Dateien wird eine Ansicht durch eine Reihe von 
    XML-Tags definiert, die Folgendes beschreiben: den Namen der 
    Ansicht, den Objekttyp, auf den diese angewendet werden kann, die 
    Spaltenköpfe und die Eigenschaften, die in der Ansicht angezeigt 
    werden. Das Format in den Format.ps1xml-Dateien wird erst kurz 
    vor der Datendarstellung für den Benutzer angewendet. 

  Erstellen neuer Format.ps1xml-Dateien

      Die mit Windows PowerShell installierten PS1XML-Dateien werden 
      digital signiert, um Manipulationen zu verhindern, da die 
      Formatierung Skriptblöcke enthalten kann. Um das Anzeigeformat 
      einer vorhandenen Objektansicht zu ändern oder Ansichten für 
      neue Objekte hinzuzufügen, erstellen Sie eine eigene 
      Format.ps1xml-Datei, und fügen Sie diese dann der Windows 
      PowerShell-Sitzung hinzu.


      Zum Erstellen einer neuen Datei kopieren Sie eine vorhandene 
      Format.ps1xml-Datei. Die neue Datei kann beliebig benannt 
      werden, jedoch muss sie die Dateinamenerweiterung ".ps1xml" 
      aufweisen. Sie können die neue Datei in ein beliebiges 
      Verzeichnis einfügen, auf das Windows PowerShell zugreifen 
      kann, es ist jedoch sinnvoll, die Dateien im Windows 
      PowerShell-Installationsverzeichnis ("$pshome") oder in einem 
      Unterverzeichnis des Installationsverzeichnisses zu speichern.

      Zum Ändern der Formatierung für eine aktuelle Ansicht suchen 
      Sie die Ansicht in der Formatierungsdatei, und ändern Sie die 
      Ansicht dann über die Tags. Wenn Sie für einen neuen Objekttyp 
      eine Ansicht erstellen möchten, erstellen Sie eine neue 
      Ansicht, oder verwenden Sie eine vorhandene Ansicht als Modell. 
      (Die Tags werden im nächsten Abschnitt dieses Themas 
      beschrieben.) Sie können dann alle anderen Ansichten in der 
      Datei löschen, sodass die Änderungen jedem Benutzer, der die 
      Datei untersucht, klar angezeigt werden.


      Wenn Sie die Änderungen gespeichert haben, fügen Sie die neue 
      Datei mit dem Cmdlet "Update-FormatData" der Windows 
      PowerShell-Sitzung hinzu. Wenn die Ansicht Vorrang gegenüber 
      den in den integrierten Dateien definierten Ansichten haben 
      soll, verwenden Sie den PrependData-Parameter von 
      Update-FormatData. Update-FormatData wirkt sich auf nur die 
      aktuelle Sitzung aus. Fügen Sie dem Windows PowerShell-Profil 
      den Befehl "Update-FormatData" hinzu, um die Änderung für alle 
      zukünftigen Sitzungen zu übernehmen.


  Beispiel: Hinzufügen von Kalenderdaten zu Culture-Objekten

      In diesem Beispiel wird gezeigt, wie die Formatierung der vom 
      Cmdlet "Get-Culture" generierten Culture-Objekte (System.Globali
      zation.CultureInfo) geändert wird.
      Mit den im Beispiel verwendeten Befehlen fügen Sie der 
      Standardtabellenansicht von Culture-Objekten die Calendar-Eigens
      chaft hinzu.


      Der erste Schritt besteht darin, die Format.ps1xml-Datei zu 
      suchen, die die aktuelle Ansicht der Culture-Objekte enthält. 
      Mit dem folgenden Befehl "Select-String" suchen Sie die Datei:


	  select-string -path $pshome\*format.ps1xml ` 
              -pattern System.Globalization.CultureInfo


      Dieser Befehl ergibt, dass sich die Definition in der Datei 
      "DotNetTypes.Format.ps1xml" befindet.


      Mit dem nächsten Befehl kopieren Sie den Dateiinhalt in eine 
      neue Datei, "MyDotNetTypes.Format.ps1xml".


	  copy-item DotNetTypes.Format.ps1xml MyDotNetTypes.Format.ps1xml


      Öffnen Sie danach die Datei "MyDotNetTypes.Format.ps1xml" in 
      einem beliebigen XML- oder Text-Editor, z. B. Microsoft Editor. 
      Suchen Sie den Abschnitt zum System.Globalization.CultureInfo-Ob
      jekt. Das folgende XML definiert die Ansichten des 
      CultureInfo-Objekts.
      Das Objekt besitzt nur eine TableControl-Ansicht.
 

      <View>
          <Name>System.Globalization.CultureInfo</Name>
          <ViewSelectedBy>
             <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
             <TypeName>System.Globalization.CultureInfo</TypeName>
          </ViewSelectedBy>

          <TableControl>
              <TableHeaders>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader/>
              </TableHeaders>
              <TableRowEntries>
                  <TableRowEntry>
                      <TableColumnItems>
                          <TableColumnItem>
                              <PropertyName>LCID</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>Name</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>DisplayName</PropertyName>
                          </TableColumnItem>
                      </TableColumnItems>
                  </TableRowEntry>
               </TableRowEntries>
          </TableControl>
      </View>


      Löschen Sie den Rest der Datei, mit Ausnahme der öffnenden Tags 
      <?XML>, <Configuration> und <ViewDefinitions> sowie der 
      schließenden Tags <ViewDefinitions> und <Configuration>. Sie 
      müssen stets auch die 
      digitale Signatur löschen, wenn Sie die Datei ändern.


      <?xml version="1.0" encoding="utf-8" ?>
      <Configuration>
          <ViewDefinitions>
              <View>
                  <Name>System.Globalization.CultureInfo</Name>
                  <ViewSelectedBy>
                      <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
                      <TypeName>System.Globalization.CultureInfo</TypeName>
                  </ViewSelectedBy>

                  <TableControl>
                      <TableHeaders>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader/>
                      </TableHeaders>
                      <TableRowEntries>
                          <TableRowEntry>
                              <TableColumnItems>
                                  <TableColumnItem>
                                      <PropertyName>LCID</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>Name</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>DisplayName</PropertyName>
                                  </TableColumnItem>
                              </TableColumnItems>
                          </TableRowEntry>
                       </TableRowEntries>
                  </TableControl>
              </View>
          </ViewDefinitions>
      </Configuration>


      Erstellen Sie als Nächstes eine neue Spalte für die 
      Calendar-Eigenschaft, indem Sie einen neuen Satz von 
      <TableColumnHeader>-Tags hinzufügen. Der Wert der 
      Calendar-Eigenschaft kann lang sein, daher werden 
      45 Zeichen wie folgt als Wert verwendet:


                  <TableControl>
                    <TableHeaders>
                        <TableColumnHeader>
                            <Width>16</Width>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Width>16</Width>
                        </TableColumnHeader>
                 
                        <TableColumnHeader>
                            <Width>45</Width>
                        </TableColumnHeader>

                        <TableColumnHeader/>
                    </TableHeaders> 


      Fügen Sie in den Tabellenzeilen nun wie folgt ein neues 
      Spaltenelement hinzu:


                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>LCID</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>

                            <TableColumnItem>
                                <PropertyName>Calendar</PropertyName>
                            </TableColumnItem>

                            <TableColumnItem>
                                <PropertyName>DisplayName</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                 </TableRowEntries>



      Fügen Sie nach dem Speichern und Schließen der Datei mit einem 
      Befehl vom Typ "Update-FormatData", z. B. dem folgenden Befehl, 
      die neue Formatdatei der aktuellen Sitzung hinzu. Mit dem 
      Befehl wird der PrependData-Parameter verwendet, um die neue 
      Datei an einer höheren Stelle in der Rangfolge einzufügen als 
      die ursprüngliche Datei. (Weitere Informationen zu 
      Update-FormatData erhalten Sie mit dem Befehl "get-help 
      update-formatdata".)


	  update-formatdata -prependpath $pshome\MyDotNetTypes.format.ps1xml


      Zum Testen der Änderung geben Sie "get-culture" ein, und 
      überprüfen Sie dann die Ausgabe, die die Calendar-Eigenschaft 
      umfasst.


      C:\PS> get-culture

      LCID Name  Calendar                                DisplayName
      ---- ----  --------                                -----------
      1031 de-DE System.Globalization.GregorianCalendar  Deutsch (Deutschland)


  Das XML in Format.ps1xml-Dateien

      Der Abschnitt "ViewDefinitions" jeder Format.ps1xml-Datei 
      enthält die <View>-Tags, in denen die einzelnen Ansichten 
      definiert sind. Ein typisches <View>-Tag enthält die folgenden Tags:

    
          <Name>
              Das <Name>-Tag, das den Namen der Ansicht angibt.


          <ViewSelectedBy>
              Das <ViewSelectedBy>-Tag gibt die Objekttypen an, auf
              die die Ansicht angewendet wird.

    
          <GroupBy>
              Das <GroupBy> Tag gibt an, wie die Elemente in der Ansicht 
              zu Gruppen zusammengefasst werden.


          <TableControl>
          <ListControl>
          <WideControl>
          <ComplexControl>
              Diese Tags enthalten die Tags, in denen angegeben ist, 
              wie die einzelnen Elemente angezeigt werden.

    
      Das <ViewSelectedBy>-Tag kann ein <Typname>-Tag für jeden 
      Objekttyp enthalten, für den die Ansicht gilt. Es kann auch ein 
      <SelectionSetName>-Tag enthalten, das auf einen Auswahlsatz verweist, 
      der an einer anderen Stelle durch ein <SelectionSet>-Tag definiert wird.


      Das <GroupBy>-Tag enthält ein <PropertyName>-Tag, das die 
      Objekteigenschaft angibt, nach der Elemente gruppiert werden. 
      Er enthält außerdem ein <Label>-Tag, das eine Zeichenfolge 
      angibt, die als Bezeichnung für die einzelnen Gruppen verwendet 
      wird, oder ein <ComplexControlName>-Tag, das auf ein komplexes 
      Steuerelement verweist, das an anderer Stelle durch ein 
      <Control>-Tag definiert wird. Das <Control>-Tag enthält ein 
      <Name>-Tag und ein <ComplexControl>-Tag. 

    
      Das <TableControl>-Tag enthält üblicherweise die Tags 
      <TableHeaders> und <TableRowEntries>, in denen die Formatierung 
      der Tabellenköpfe und -zeilen festgelegt ist. Das 
      <TableHeaders>-Tag enthält in der Regel <TableColumnHeader>-Tags, 
      die wiederum die Tags <Label>, <Width> und <Alignment> 
      enthalten. Das <TableRowEntries>-Tag enthält <TableRowEntry>-Tags 
      für jede Zeile in der Tabelle. Der <TableRowEntry>-Tag enthält ein 
      <TableColumnItems>-Tag mit einem <TableColumnItem>-Tag für jede 
      Spalte in der Zeile. 
      Das <TableColumnItem>-Tag enthält normalerweise ein 
      <PropertyName>-Tag zur Angabe der Objekteigenschaft, die an der 
      angegebenen Position angezeigt werden soll, oder ein 
      <ScriptBlock>-Tag mit einem Skriptcode zur Berechnung eines 
      Ergebnisses, das an der Position angezeigt werden soll. 


      Hinweis: Skriptblöcke können auch an anderen Stellen verwendet 
      	       werden, an denen berechnete Ergebnisse gewünscht werden. 

    
      Das <TableColumnItem>-Tag kann zudem ein <FormatString>-Tag 
      enthalten, das angibt, wie die Eigenschaft oder die berechneten 
      Ergebnisse angezeigt werden sollen.

    
      Das <ListControl>-Tag enthält in der Regel ein <ListEntries>-Tag. 
      Das <ListEntries>-Tag enthält ein <ListItems>-Tag. Das 
      <ListItems>-Tag enthält <ListItem>-Tags, die <PropertyName>-Tags
      enthalten. Die <PropertyName>-Tags geben die Objekteigenschaftan,  
      die an der angegebenen Position in der Liste angezeigt 
      werden soll. Wenn die Ansichtsauswahl über eine Auswahlmenge 
      definiert wird, kann das <ListControl>-Tag auch ein 
      <EntrySelectedBy>-Tag mit einem oder mehreren <TypeName>-Tags 
      enthalten. Diese <Typname>-Tags geben den Objekttyp an, der im 
      <ListControl>-Tag angezeigt werden soll.

    
      Das <WideControl>-Tag enthält in der Regel ein <WideEntries>-Tag. 
      Das <WideEntries>-Tag enthält mindestens ein <WideEntry>-Tag. 
      Das <WideEntry>-Tag enthält meist ein <PropertyName>-Tag. 
      Dieses gibt die Eigenschaft an, die an der angegebenen Position 
      in der Ansicht angezeigt werden soll. Das <PropertyName>-Tag 
      kann ein <FormatString>-Tag enthalten, das angibt, wie die 
      Eigenschaft angezeigt werden soll. 

    
      Das <ComplexControl>-Tag enthält komplexere Tag-Kombinationen 
      als andere Ansichtstypen. Das <ComplexEntry>-Tag enthält 
      normalerweise ein <ComplexItem>-Tag. Das <ComplexEntries>-Tag 
      enthält mehrere <ComplexEntry>-Tags. Das <ComplexEntry>-Tag 
      enthält normalerweise ein <ComplexItem>-Tag. Dieses Tag kann 
      wiederum unterschiedliche Tags enthalten, die den Inhalt und 
      die Formatierung für die angegebene Position in der Ansicht 
      angeben, einschließlich der Tags <Text>, <Indentation>, 
      <ExpressionBinding> und <NewLine>.


  Update-FormatData

      Zum Laden der Format.ps1xml-Dateien in eine Windows 
      PowerShell-Sitzung verwenden Sie das Cmdlet "Update-FormatData".
      Wenn die Ansichten in der Datei Vorrang gegenüber den 
      Ansichten in der integrierten Format.ps1xml-Datei haben soll, 
      verwenden Sie den PrependData-Parameter von Update-FormatData. 
      Update-FormatData wirkt sich auf nur die aktuelle Sitzung aus. 
      Fügen Sie dem Windows PowerShell-Profil den Befehl 
      "Update-FormatData" hinzu, um die Änderung für alle 
      zukünftigen Sitzungen zu übernehmen.


  Standardanzeigen in "Types.ps1xml"

      Die Standardanzeigen einiger grundlegender Objekttypen werden 
      in der Datei "Types.ps1xml" im Verzeichnis "$pshome" definiert. 
      Die Knoten werden mit "PsStandardMembers" bezeichnet, und für 
      die untergeordneten Knoten wird eines der folgenden Tags verwendet:


          <DefaultDisplayProperty>
          <DefaultDisplayPropertySet>
          <DefaultKeyPropertySet>


      Geben Sie den folgenden Befehl ein, um weitere Informationen zu 
      erhalten:

	  get-help about_types.ps1xml
 

  Nachverfolgen der Verwendung von Format.ps1xml-Dateien

      Um Fehler beim Laden oder Anwenden von Format.ps1xml-Dateien zu 
      erkennen, verwenden Sie das Cmdlet "Trace-Command" mit einem 
      der folgenden Formatkomponenten als Wert des Name-Parameters:


	  FormatFileLoading
          UpdateFormatData
          FormatViewBinding


      Geben Sie die folgenden Befehle ein, um weitere Informationen 
      zu erhalten:


          get-help trace-command
          get-help get-tracesource   


  Signieren einer Format.ps1xml-Datei

      Zum Schutz der Benutzer der Format.ps1xml-Datei können Sie die 
      Datei mit einer digitalen Signatur signieren. Weitere 
      Informationen erhalten Sie mit folgendem Befehl:

          get-help about_signing


SIEHE AUCH
    Update-FormatData
    Trace-Command
    Get-TraceSource




Inhaltsverzeichnis