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.
System.Globalization.CultureInfoDeserialized.System.Globalization.CultureInfoSystem.Globalization.CultureInfo1616LCIDNameDisplayName
Eliminare la parte restante del file, tranne i tag di apertura
, e e i tag di chiusura
e . È anche necessario eliminare la
firma digitale quando si modifica il file.
System.Globalization.CultureInfoDeserialized.System.Globalization.CultureInfoSystem.Globalization.CultureInfo1616LCIDNameDisplayName
Successivamente, creare una nuova colonna per la proprietà
Calendar aggiungendo un nuovo set di tag .
Il valore della proprietà Calendar può essere
long, in questo caso viene utilizzato un valore di 45
caratteri, come illustrato di seguito:
161645
A questo punto, aggiungere un nuovo elemento colonna, come segue:
LCIDNameCalendarDisplayName
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 che definiscono ogni visualizzazione. In genere,
un tag contiene i tag seguenti:
Il tag identifica il nome della visualizzazione.
Il tag specifica il tipo o i tipi di
oggetto a
cui si applica la visualizzazione.
Il tag specifica come gli elementi della
visualizzazione vengono
combinati in gruppi.
Questi tag contengono i tag che specificano come ogni
elemento sarà visualizzato.
Il tag può contenere un tag per
ogni tipo di oggetto a cui la visualizzazione si applica. In
alternativa, può contenere un tag che fa
riferimento a un set di selezioni definito in un'altra
posizione utilizzando un tag .
Il tag contiene un tag che specifica
la proprietà dell'oggetto in base a cui devono essere
raggruppati gli elementi. Questo tag include inoltre un tag