Assicurati di leggere gli articoli precedenti della serie:
- Scopri come automatizzare Windows con PowerShell
- Imparare a utilizzare i cmdlet in PowerShell
- Apprendimento Come utilizzare gli oggetti in PowerShell
E rimanete sintonizzati per il resto della serie per tutta la settimana.
Formattazione predefinita
Quando ho iniziato per la prima volta con PowerShell, ho pensato che tutto fosse magico, ma la verità è che ci vuole solo un po 'di tempo per capire cosa sta succedendo sotto il cofano. Lo stesso vale per il sistema di formattazione di PowerShell. Infatti, se si esegue il cmdlet Get-Service, l'output generato mostra solo 3 proprietà: Status, Name e DisplayName.
notepad C:WindowsSystem32WindowsPowerShellv1.0DotNetTypes.format.ps1xml
Se utilizziamo la funzione Trova del blocco note, possiamo saltare rapidamente alla sezione che descrive l'output del cmdlet Get-Service cercando il tipo ServiceController.
Formattare i tuoi dati
Se non si è soddisfatti della formattazione predefinita di un oggetto o di un tipo, è possibile eseguire il rollover della propria formattazione. Ci sono tre cmdlet che devi sapere per farlo.
- Format-List
- Format-Table
- Format-Wide
Format-Wide prende semplicemente una collezione di oggetti e visualizza una singola proprietà di ciascun oggetto. Di default, cercherà una proprietà name; se i tuoi oggetti non contengono una proprietà name, userà la prima proprietà dell'oggetto una volta che le proprietà sono state ordinate alfabeticamente.
Get-Service | Format-Wide
Get-Service | Format-Wide -Property DisplayName -Column 6
Questa vista tabulare si adatta molto bene a questo tipo di informazioni, ma facciamo finta di volerlo vedere in forma di elenco. Tutto quello che dobbiamo fare è canalizzarlo Format-List.
Get-Process | Format-List
Get-Process | Format-List –Property *
Get-Process | Format-List –Property name,id
Format-Table, d'altra parte, prende i dati e li trasforma in una tabella. Poiché i nostri dati di Get-Process sono già sotto forma di tabella, possiamo usarli per scegliere facilmente le proprietà che vogliamo vengano visualizzate nella tabella. Ho usato il parametro AutoSize per far rientrare tutti i dati su una singola schermata.
Get-Process | Format-Table name,id –AutoSize
Filtro e confronto
Uno degli aspetti migliori dell'utilizzo di una pipeline basata su oggetti è che è possibile filtrare gli oggetti fuori dalla pipeline in qualsiasi momento utilizzando il cmdlet Where-Object.
Get-Service | Where-Object {$_.Status -eq “Running”}
- eq (uguale a)
- neq (non uguale a)
- gt (maggiore di)
- ge (maggiore di o uguale a)
- lt (meno di)
- le (minore o uguale a)
- Mi piace (Wildcard String Match)
Un elenco completo e ulteriori informazioni possono essere visualizzati nel file della guida concettuale about_comparison, tuttavia ci vuole un po 'di tempo per abituarsi alla sintassi Where-Obeject. Questo è tutto per questo tempo!