ARGOMENTO
    about_Format.ps1xml

DESCRIZIONE BREVE
    I file Format.ps1xml in Windows PowerShell definiscono la 
    visualizzazione predefinita degli oggetti nella console Windows 
    PowerShell. È possibile creare file Format.ps1xml per modificare 
    la visualizzazione di oggetti o definire visualizzazioni 
    predefinite per i nuovi tipi di oggetti che si creano in Windows 
    PowerShell.

DESCRIZIONE DETTAGLIATA
    I file Format.ps1xml in Windows PowerShell definiscono la 
    visualizzazione predefinita degli oggetti in Windows PowerShell. 
    È possibile creare file Format.ps1xml per modificare la 
    visualizzazione di oggetti o definire visualizzazioni predefinite 
    per i nuovi tipi di oggetti che si creano in Windows PowerShell.


    Quando Windows PowerShell visualizza un oggetto, utilizza i dati 
    nei file di formattazione strutturati per determinare la 
    visualizzazione predefinita dell'oggetto. I dati nei file di 
    formattazione determinano se viene eseguito il rendering 
    dell'oggetto in una tabella o in un elenco, e determina quali 
    proprietà vengono visualizzate per impostazione predefinita. 


    La formattazione influisce solo sulla visualizzazione. Non 
    influisce su quali proprietà dell'oggetto vengono passate alla 
    pipeline o su come vengono passate.


    Windows PowerShell include sette file di formattazione. Questi 
    file si trovano nella directory di installazione ($pshome). Ogni 
    file definisce la visualizzazione di un gruppo di oggetti 
    Microsoft .NET Framework:


	Certificate.Format.ps1xml
            Oggetti nell'archivio certificati, ad esempio certificati 
            X.509 e archivi certificati.

	DotNetTypes.Format.ps1xml
            Altri tipi .NET Framework, quali CultureInfo, 
            FileVersionInfo e oggetti EventLogEntry.

	FileSystem.Format.ps1xml
            Oggetti del file system, ad esempio file e directory.

	Help.Format.ps1xml
            Visualizzazioni della guida, ad esempio visualizzazioni 
            dettagliate e complete, parametri ed esempio.

	PowerShellCore.format.ps1xml
            Oggetti generati dai cmdlet principali di Windows 
            PowerShell, quali Get-Member e Get-History.

	PowerShellTrace.format.ps1xml
            Oggetti di analisi, ad esempio quelli generati dal cmdlet 
            Trace-Command.

	Registry.format.ps1xml 
            Oggetti del Registro di sistema, ad esempio chiavi e voci.


    Un file di formattazione può definire quattro visualizzazioni 
    diverse di ogni oggetto: tabella, elenco, estesa e complessa. Ad 
    esempio, quando l'output di un comando Get-ChildItem viene 
    indirizzato a un comando Format-List, Format-List utilizza la 
    visualizzazione nel file FileSystem.format.ps1xml per determinare 
    come visualizzare gli oggetti file e cartella come un elenco.


    Nel file Format.ps1xml, una visualizzazione viene definita da un 
    set di tag XML che descrivono il nome della visualizzazione, il 
    tipo di oggetto a cui può essere applicata, le intestazioni di 
    colonna e le proprietà visualizzate nel corpo della 
    visualizzazione. Il formato nei file Format.ps1xml è applicato 
    immediatamente prima che i dati vengano presentati all'utente. 

  Creazione di nuovi file Format.ps1xml

      I file .ps1xml installati con Windows PowerShell sono firmati 
      digitalmente per impedirne l'alterazione poiché la 
      formattazione può includere blocchi di script. Pertanto, per 
      modificare il formato di visualizzazione di una visualizzazione 
      dell'oggetto esistente o aggiungere visualizzazioni per i nuovi 
      oggetti, creare file Format.ps1xml, quindi aggiungerli alla 
      sessione di Windows PowerShell.


      Per creare un nuovo file, copiare un file Format.ps1xml 
      esistente. Il nuovo file può avere qualsiasi nome ma deve avere 
      estensione .ps1xml. È possibile inserire il nuovo file in 
      qualsiasi directory accessibile a Windows PowerShell, ma è 
      consigliabile inserirlo nella directory di installazione 
      ($pshome) di Windows PowerShell o in una sottodirectory della 
      directory di installazione.

      Per modificare la formattazione di una visualizzazione 
      corrente, individuare la visualizzazione nel file di 
      formattazione, quindi utilizzare i tag per modificare la 
      visualizzazione. Per creare una visualizzazione per un nuovo 
      tipo di oggetto, creare una nuova visualizzazione o utilizzare 
      una visualizzazione esistente come modello. I tag vengono 
      descritti nella sezione successiva di questo argomento. È 
      quindi possibile eliminare tutte le altre visualizzazioni nel 
      file in modo che le modifiche risultino ovvie a chiunque 
      esamini il file.


      Dopo aver salvato le modifiche, utilizzare il cmdlet 
      Update-FormatData per aggiungere il nuovo file alla sessione di 
      Windows PowerShell. Se si desidera che la visualizzazione abbi 
      la precedenza su una visualizzazione definita nei file 
      predefiniti, utilizzare il parametro PrependData del cmdlet 
      Update-FormatData. Update-FormatData ha effetto solo sulla 
      sessione corrente. Per apportare la modifica a tutte le 
      sessioni future di Windows PowerShell, aggiungere il comando 
      Update-FormatData al profilo di Windows PowerShell.


  Esempio: aggiunta di dati di calendario agli oggetti cultura

      In questo esempio viene mostrato come modificare la 
      formattazione degli oggetti cultura (System.Globalization.Cultur
      eInfo) generati dal cmdlet Get-Culture.
      I comandi nell'esempio aggiungono la proprietà Calendar alla 
      visualizzazione della vista tabella predefinita degli oggetti 
      cultura.


      Il primo passaggio è trovare il file Format.ps1xml che contiene 
      la visualizzazione corrente degli oggetti cultura. Il comando 
      Select-String seguente trova il file:


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


      Questo comando rivela che la definizione si trova nel file 
      DotNetTypes.Format.ps1xml.


      Il comando successiva copia il contenuto del file in un nuovo file, 
      MyDotNetTypes.Format.ps1xml.


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


      Quindi, apre il file MyDotNetTypes.Format.ps1xml in un editor 
      XML o di testo, quale Blocco note. Trovare la sezione dell'oggetto 
      System.Globalization.CultureInfo. Il codice XML seguente definisce le 
      visualizzazioni dell'oggetto CultureInfo.
      L'oggetto dispone solo di una visualizzazione 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>


      Eliminare la parte restante del file, tranne i tag di apertura 
      <?XML>, <Configuration> e <ViewDefinitions> e i tag di chiusura 
      <ViewDefintions> e <Configuration>. È anche necessario eliminare la 
      firma digitale quando si modifica il file.


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


      Successivamente, creare una nuova colonna per la proprietà 
      Calendar aggiungendo un nuovo set di tag <TableColumnHeader>. 
      Il valore della proprietà Calendar può essere 
      long, in questo caso viene utilizzato un valore di 45 
      caratteri, come illustrato di seguito:


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

                        <TableColumnHeader/>
                    </TableHeaders> 


      A questo punto, aggiungere un nuovo elemento colonna, come segue:


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



      Dopo aver salvato e chiuso il file, utilizzare un comando 
      Update-FormatData, come il seguente, per aggiungere il nuovo 
      file di formato alla sessione corrente. Il comando utilizza il 
      parametro PrependData per inserire il nuovo file in un ordine 
      di precedenza maggiore al file precedente. Per ulteriori 
      informazioni su Update-FormatData, digitare: "get-help 
      update-formatdata".


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


      Per verificare la modifica, digitare "get-culture", quindi 
      rivedere l'output che include la proprietà Calendar.


      C:\PS> get-culture

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


  Codice XML nei file Format.ps1xml

      La sezione ViewDefinitions di ogni file Format.ps1xml contiene 
      i tag <View> che definiscono ogni visualizzazione. In genere, 
      un tag <View> contiene i tag seguenti:

    
          <Name>
              Il tag <Name> identifica il nome della visualizzazione.


          <ViewSelectedBy>
              Il tag <ViewSelectedBy> specifica il tipo o i tipi di 
              oggetto a
              cui si applica la visualizzazione.

    
          <GroupBy>
              Il tag <GroupBy> specifica come gli elementi della 
              visualizzazione vengono 
              combinati in gruppi.


          <TableControl>
          <ListControl>
          <WideControl>
          <ComplexControl>
              Questi tag contengono i tag che specificano come ogni 
              elemento sarà visualizzato.

    
      Il tag <ViewSelectedBy> può contenere un tag <TypeName> per 
      ogni tipo di oggetto a cui la visualizzazione si applica. In 
      alternativa, può contenere un tag <SelectionSetName> che fa 
      riferimento a un set di selezioni definito in un'altra 
      posizione utilizzando un tag <SelectionSet>.


      Il tag <GroupBy> contiene un tag <PropertyName> che specifica 
      la proprietà dell'oggetto in base a cui devono essere 
      raggruppati gli elementi. Questo tag include inoltre un tag 
      <Label> che specifica una stringa da utilizzare come etichetta 
      per ogni gruppo oppure un tag <ComplexControlName> che fa 
      riferimento a un controllo complesso definito in un'altra 
      posizione utilizzando un tag <Control>. Il tag <Control> 
      contiene un tag <Name> e un tag <ComplexControl>. 

    
      Il tag <TableControl> contiene in genere i tag <TableHeaders> e 
      <TableRowEntries> che definiscono la formattazione delle righe 
      e delle intestazioni della tabella. Il tag <TableHeaders> 
      contiene in genere il tag <TableColumnHeader> che contiene i 
      tag <Label>, <Width> e <Alignment>. Il tag <TableRowEntries> 
      contiene tag <TableRowEntry> per ogni riga della tabella. Il 
      tag <TableRowEntry> contiene un tag <TableColumnItems> che 
      contiene un tag <TableColumnItem> per ogni colonna della riga. 
      In genere, il tag <TableColumnItem> contiene un tag 
      <PropertyName> che identifica la proprietà dell'oggetto da 
      visualizzare nella posizione definita oppure un tag 
      <ScriptBlock> che contiene codice di script che consente di 
      calcolare un risultato da visualizzare nella posizione. 


      Nota: i blocchi di script possono essere utilizzati anche in 
      altre posizioni in cui i risultati calcolati possono essere utili. 

    
      Il tag <TableColumnItem> può contenere anche un tag 
      <FormatString> che specifica come verranno visualizzati i 
      risultati calcolati o la proprietà.

    
      Il tag <ListControl> in genere contiene un tag <ListEntries>. 
      Il tag <ListEntries> contiene un tag <ListItems>. Il tag 
      <ListItems> contiene tag <ListItem> che contengono tag 
      <PropertyName>. I tag <PropertyName> specificano la proprietà 
      dell'oggetto da visualizzare nella posizione specificata 
      nell'elenco. Se la visualizzazione è definita mediante un set 
      di selezioni, il tag <ListControl> può anche contenere un tag 
      <EntrySelectedBy> che contiene uno o più tag <TypeName>. Questi 
      tag <TypeName> specificano il tipo di oggetto che il tag 
      <ListControl> deve visualizzare.

    
      Il tag <WideControl> in genere contiene un tag <WideEntries>. 
      Il tag <WideEntries> contiene uno o più tag <WideEntry>. Un tag 
      <WideEntry> contiene in genere un tag <PropertyName> che 
      specifica la proprietà da visualizzare nella posizione della 
      visualizzazione specificata. Il tag <PropertyName> può 
      contenere anche un tag <FormatString> che specifica come devono 
      essere visualizzati i risultati calcolati o la proprietà. 

    
      Il tag <ComplexControl> contiene combinazioni più complesse di 
      tag rispetto ad altri tipi di visualizzazioni. Un tag 
      <ComplexControl> contiene in genere un tag <ComplexEntries>. Un tag 
      <ComplexEntries> contiene più tag <ComplexEntry>. Un tag 
      <ComplexEntry> contiene in genere un tag <ComplexItem>. Questo tag, a 
      sua volta, può contenere vari tag che specificano il contenuto e la 
      formattazione per la posizione della visualizzazione specificata, 
      inclusi i tag <Text>, <Indentation>, <ExpressionBinding> e <NewLine>.


  Update-FormatData

      Per caricare i file Format.ps1xml in una sessione di Windows 
      PowerShell, utilizzare il cmdlet Update-FormatData. Se si 
      desidera che le visualizzazioni nel file abbiano la precedenza sulle 
      visualizzazioni nel file Format.ps1xml predefinito, utilizzare il 
      parametro PrependData di Update-FormatData. Update-FormatData ha 
      effetto solo sulla sessione corrente. Per apportare la modifica a 
      tutte le sessioni future di Windows PowerShell, aggiungere il comando 
      Update-FormatData al profilo di Windows PowerShell.


  Visualizzazioni predefinite in Types.ps1xml

      Le visualizzazioni predefinite dei tipi di oggetti di base sono 
      definite nel file Types.ps1xml nella directory $pshome. I nodi 
      sono denominati PsStandardMembers e i nodi secondari utilizzano 
      uno dei tag seguenti:


          <DefaultDisplayProperty>
          <DefaultDisplayPropertySet>
          <DefaultKeyPropertySet>


      Per ulteriori informazioni, digitare il comando seguente:

	  get-help about_types.ps1xml
 

  Analisi dell'utilizzo del file Format.ps1xml

      Per rilevare errori nel caricamento o nell'applicazione dei 
      file Format.ps1xml, utilizzare il cmdlet Trace-Command con 
      qualsiasi dei componenti di formato seguenti come valore del 
      parametro Name:


	  FormatFileLoading
          UpdateFormatData
          FormatViewBinding


      Per ulteriori informazioni, digitare i comandi seguenti:


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


  Firma di un file Format.ps1xml

      Per proteggere gli utenti del file Format.ps1xml, è possibile 
      firmare il file utilizzando una firma digitale. Per ulteriori 
      informazioni, digitare:

          get-help about_signing


VEDERE ANCHE
    Update-FormatData
    Trace-Command
    Get-TraceSource




Argomenti della Guida