RUBRIQUE
    about_Format.ps1xml

DESCRIPTION COURTE
    Les fichiers Format.ps1xml de Windows PowerShell définissent 
    l'affichage par défaut des objets de sa console. Vous pouvez 
    créer vos propres fichiers Format.ps1xml pour modifier 
    l'affichage des objets ou définir des affichages par défaut 
    pour les types d'objets que vous créez dans Windows PowerShell.

DESCRIPTION LONGUE
    Les fichiers Format.ps1xml de Windows PowerShell définissent 
    l'affichage par défaut de ses objets. Vous pouvez créer vos 
    propres fichiers Format.ps1xml pour modifier l'affichage des 
    objets ou définir des affichages par défaut pour les types 
    d'objets que vous créez dans Windows PowerShell.


    Lorsque Windows PowerShell affiche un objet, il utilise les 
    données des fichiers de mise en forme structurée pour déterminer 
    l'affichage par défaut de ce dernier. Les données des fichiers de 
    mise en forme déterminent si l'objet est restitué dans une table 
    ou dans une liste, et définit les propriétés affichées par défaut. 


    La mise en forme affecte uniquement l'affichage. Elle ne 
    détermine pas les propriétés d'objets passées à travers le 
    pipeline ni la façon dont ces dernières sont passées.


    Windows PowerShell inclut sept fichiers de mise en forme. Ces 
    fichiers se trouvent dans le répertoire d'installation ($pshome). 
    Chaque fichier définit l'affichage d'un groupe d'objets Microsoft 
    .NET Framework :


	Certificate.Format.ps1xml
            Objets du magasin de certificats, tels que les 
            certificats et les magasins de certificats X.509.

	DotNetTypes.Format.ps1xml
            Autres types .NET Framework, tels que les objets CultureInfo, 
            FileVersionInfo et EventLogEntry.

	FileSystem.Format.ps1xml
            Objets de systèmes de fichiers, tels que des fichiers et 
            des répertoires.

	Help.Format.ps1xml
            Vues d'aide, telles que des vues détaillées et complètes, 
            des paramètres et des exemples.

	PowerShellCore.format.ps1xml
            Objets générés par les applets de commande principales 
            Windows PowerShell, telles que Get-Member et Get-History.

	PowerShellTrace.format.ps1xml
            Objets de trace, tels que ceux générés par l'applet de 
            commande Trace-Command.

	Registry.format.ps1xml 
            Objets de Registre, tels que les clés et les entrées.


    Un fichier de mise en forme permet de définir quatre vues 
    différentes pour chaque objet : Table (table), Liste (list), 
    Large (wide) et Complexe (complex). Par exemple, lorsque la 
    sortie d'une commande Get-ChildItem est dirigée vers une commande 
    Format-List, Format-List utilise la vue du fichier FileSystem.form
    at.ps1xml pour déterminer comment afficher les objets de fichiers 
    et de dossiers sous forme de liste.


    Dans un fichier Format.ps1xml, une vue est définie par un jeu de 
    balises XML qui décrivent le nom de la vue, le type d'objet 
    auquel elle peut s'appliquer, les en-têtes de colonnes et les 
    propriétés qui s'affichent dans le corps de la vue. Le format des 
    fichiers Format.ps1xml est appliqué juste avant que les données 
    soient présentées à l'utilisateur. 

  Création de fichiers Format.ps1xml

      Les fichiers .ps1xml installés avec Windows PowerShell sont 
      signés numériquement pour empêcher la falsification, car la 
      mise en forme peut inclure des blocs de script. Par conséquent, 
      pour modifier le format d'affichage d'une vue d'objet existante 
      ou ajouter des vues pour les nouveaux objets, vous devez créer 
      vos propres fichiers Format.ps1xml, puis les ajouter à votre 
      session Windows PowerShell.


      Pour créer un fichier, copiez un fichier Format.ps1xml 
      existant. Les nouveaux fichiers peuvent porter n'importe quel 
      nom, mais leur nom doit comporter l'extension .ps1xml. Vous 
      pouvez placer le nouveau fichier dans tout répertoire 
      accessible à partir de Windows PowerShell, mais il est utile de 
      placer les fichiers dans le répertoire d'installation Windows 
      PowerShell ($pshome) ou dans un sous-répertoire du répertoire 
      d'installation.

      Pour changer la mise en forme d'une vue actuelle, localisez la 
      vue dans le fichier de mise en forme, puis utilisez les balises 
      pour la modifier. Vous pouvez créer une vue à partir de zéro 
      pour un nouveau type d'objet ou utiliser une vue existante en 
      tant que modèle. (Les balises sont décrites dans la section 
      suivante de cette rubrique.) Vous pouvez supprimer ensuite 
      toutes les autres vues du fichier afin que les modifications 
      soient évidentes pour n'importe quel utilisateur examinant le 
      fichier.


      Lorsque vous avez enregistré les modifications, utilisez 
      l'applet de commande Update-FormatData pour ajouter le nouveau 
      fichier à votre session Windows PowerShell. Si vous souhaitez 
      que votre vue soit prioritaire sur une vue définie dans les 
      fichiers intégrés, utilisez le paramètre PrependData de 
      l'applet de commande Update-FormatData. Update-FormatData 
      affecte uniquement la session active. Pour appliquer la 
      modification à toutes les sessions futures, ajoutez la 
      commande Update-FormatData à votre profil Windows PowerShell.


  Exemple : Ajout de données de calendrier aux objets de culture

      Cet exemple montre comment modifier la mise en forme des objets 
      de culture (System.Globalization.CultureInfo) générés par 
      l'applet de commande Get-Culture.
      Les commandes de l'exemple permettent d'ajouter la propriété 
      Calendar à la vue Table par défaut des objets de culture.


      La première étape consiste à rechercher le fichier 
      Format.ps1xml qui contient la vue actuelle des objets de 
      culture. La commande Select-String suivante recherche le fichier :


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


      Cette commande indique que la définition se trouve dans le fichier 
      DotNetTypes.Format.ps1xml.


      La commande suivante copie le contenu du fichier dans un 
      nouveau fichier, MyDotNetTypes.Format.ps1xml.


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


      Ouvrez ensuite le fichier MyDotNetTypes.Format.ps1xml dans tout 
      éditeur de texte ou XML, tel que le Bloc-notes. Recherchez la 
      section de l'objet System.Globalization.CultureInfo. Le code 
      XML ci-dessous définit les vues de l'objet CultureInfo.
      L'objet dispose uniquement d'une vue TableControl.
 

     <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>


      Supprimez le reste du fichier, à l'exception des balises 
      d'ouverture <?XML>, <Configuration> et <ViewDefinitions>, 
      ainsi que des balises de fermeture <ViewDefintions> et 
      <Configuration>. Vous devez également supprimer la 
      signature numérique chaque fois que vous modifiez le fichier.


      <?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>


      Créez ensuite une colonne pour la propriété Calendar en 
      ajoutant un nouveau jeu de balises <TableColumnHeader>. 
      La valeur de la propriété Calendar pouvant être longue, 
      une valeur de 45 caractères est utilisée comme suit :


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

                        <TableColumnHeader/>
                    </TableHeaders>


      À présent, ajoutez un nouvel élément de colonne dans les lignes 
      de table comme suit :


                <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>



      Après avoir enregistré le fichier et l'avoir fermé, utilisez 
      une commande Update-FormatData, telle que la commande 
      ci-dessous, pour ajouter le nouveau fichier de format à la 
      session active. La commande utilise le paramètre PrependData 
      pour attribuer au nouveau fichier un ordre de précédence 
      supérieur à celui du fichier d'origine. (Pour plus 
      d'informations sur Update-FormatData, tapez " get-help 
      update-formatdata ".)


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


      Pour tester la modification, tapez " get-culture ", puis 
      examinez la sortie, qui inclut la propriété Calendar.


      C:\PS> get-culture

      LCID Name  Calendar                               DisplayName
      ---- ----  --------                               -----------
      1033 en-US System.Globalization.GregorianCalendar English (United States)


  Contenu XML des fichiers Format.ps1xml

      La section ViewDefinitions de chaque fichier Format.ps1xml 
      contient les balises <View> définissant chaque vue. Une balise 
      <View> classique comprend les balises suivantes :

    
          <Name>
              La balise <Name> identifie le nom de la vue.


          <ViewSelectedBy>
              La balise <ViewSelectedBy> spécifie le ou les types 
              d'objets auxquels la vue s'applique.

    
          <GroupBy>
              La balise <GroupBy> spécifie comment les éléments de la 
              vue seront regroupés.


          <TableControl>
          <ListControl>
          <WideControl>
          <ComplexControl>
              Ces balises contiennent elles-mêmes les balises 
              spécifiant la façon dont chaque élément sera affiché.

    
      La balise <ViewSelectedBy> peut contenir une balise <TypeName> 
      pour chaque type d'objet auquel la vue s'applique. Elle peut 
      également contenir une balise <SelectionSetName> faisant 
      référence à un ensemble de sélections défini ailleurs à l'aide 
      d'une balise <SelectionSet>.


      La balise <GroupBy> contient une balise <PropertyName> 
      spécifiant la propriété d'objet selon laquelle les éléments 
      seront regroupés. Elle inclut également une balise <Label> 
      spécifiant une chaîne à utiliser comme libellé pour chaque 
      groupe ou une balise <ComplexControlName> faisant référence 
      à un contrôle complexe défini ailleurs à l'aide d'une balise 
      <Control>. La balise <Control> contient une balise <Name> et 
      une balise <ComplexControl>. 

    
      La balise <TableControl> contient généralement des balises 
      <TableHeaders> et <TableRowEntries> définissant la mise en 
      forme des en-têtes et des lignes de la table. La balise 
      <TableHeaders> comporte généralement des balises <TableColumnHea
      der> contenant elles-mêmes des balises <Label>, <Width> et 
      <Alignment>. La balise <TableRowEntries> contient des balises 
      <TableRowEntry> pour chaque ligne de la table. La balise 
      <TableRowEntry> comporte une balise <TableColumnItems> qui 
      contient elle-même une balise <TableColumnItem> pour chaque 
      colonne de la ligne. 
      En général, la balise <TableColumnItem> contient une balise 
      <PropertyName> identifiant la propriété d'objet à afficher à 
      l'emplacement défini ou une balise <ScriptBlock> contenant un 
      code de script qui calcule un résultat à afficher à cet 
      emplacement. 


      Remarque : les blocs de script peuvent également être employés 
                 ailleurs, à des emplacements où les résultats calculés 
                 s'avèrent éventuellement utiles. 

    
      La balise <TableColumnItem> peut également contenir une balise 
      <FormatString> spécifiant comment la propriété ou les résultats 
      calculés seront affichés.

    
      La balise <ListControl> comporte en général une balise 
      <ListEntries>. La balise <ListEntries> inclut une balise 
      <ListItems>. La balise <ListItems> contient des balises 
      <ListItem> comportant elles-mêmes des balises <PropertyName>. 
      Les balises <PropertyName> spécifient la propriété d'objet 
      à afficher à l'emplacement spécifié dans la liste. Si la 
      sélection de la vue est définie à l'aide d'un ensemble de 
      sélections, la balise <ListControl> peut également contenir une 
      balise <EntrySelectedBy> comportant une ou plusieurs balises 
      <TypeName>. Ces balises <TypeName> spécifient le type d'objet 
      que la balise <ListControl> est censée afficher.

    
      La balise <WideControl> contient généralement une balise 
      <WideEntries>. La balise <WideEntries> inclut une ou plusieurs 
      balises <WideEntry>. Une balise <WideEntry> contient en général 
      une balise <PropertyName> spécifiant la propriété à afficher à 
      l'emplacement spécifié dans la vue. La balise <PropertyName> 
      peut inclure une balise <FormatString> spécifiant comment la 
      propriété sera affichée. 

    
      La balise <ComplexControl> contient des combinaisons de balises 
      plus complexes que les autres types de vues. Une balise 
      <ComplexControl> inclut en général une balise <ComplexEntries>. 
      Une balise <ComplexEntries> comporte plusieurs balises 
      <ComplexEntry>. Une balise <ComplexEntry> comporte en général 
      une balise <ComplexItem>. Cette balise peut à son tour contenir 
      diverses balises spécifiant le contenu et la mise en forme à 
      utiliser à l'emplacement spécifié dans la vue, y compris des 
      balises <Text>, <Indentation>, <ExpressionBinding> et <NewLine>.


  Update-FormatData

      Pour charger vos fichiers Format.ps1xml dans une session 
      Windows PowerShell, utilisez l'applet de commande 
      Update-FormatData. Si vous souhaitez que les vues de votre 
      fichier soient prioritaires sur les vues du fichier intégré 
      Format.ps1xml, utilisez le paramètre PrependData de l'applet de 
      commande Update-FormatData. Update-FormatData affecte 
      uniquement la session active. Pour appliquer la modification à 
      toutes les sessions futures, ajoutez la commande Update-FormatDa
      ta à votre profil Windows PowerShell.


  Affichages par défaut dans Types.ps1xml

      Les affichages par défaut de certains types d'objets de base 
      sont définis dans le fichier Types.ps1xml du répertoire 
      $pshome. Les nœuds sont nommés PsStandardMembers et les 
      sous-nœuds utilisent une des balises suivantes :


          <DefaultDisplayProperty>
          <DefaultDisplayPropertySet>
          <DefaultKeyPropertySet>


      Pour plus d'informations, tapez la commande suivante :

	  get-help about_types.ps1xml
 

  Traçage de l'utilisation du fichier Format.ps1xml

      Pour détecter des erreurs liées au chargement ou à 
      l'application des fichiers Format.ps1xml, utilisez l'applet de 
      commande Trace-Command avec chacun des composants de format 
      suivants comme valeur du paramètre Name :


	  FormatFileLoading
          UpdateFormatData
          FormatViewBinding


      Pour plus d'informations, tapez les commandes suivantes :


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


  Signature d'un fichier Format.ps1xml

      Pour protéger les utilisateurs de votre fichier Format.ps1xml, 
      signez ce dernier au moyen d'une signature numérique. Pour plus 
      d'informations, tapez :

          get-help about_signing


VOIR AUSSI
    Update-FormatData
    Trace-Command
    Get-TraceSource




Table des matières