Il risultato dell’esecuzione di un cmdlet è una raccolta di uno o più oggetti .NET. In base alla struttura di questi oggetti, si parla di proprietà (attributi) e relativo stato(valore corrente), è possibile prendere il risultato di un cmdlet e passarlo via pipeline come input ad un’altro per processarlo successivamente.

Per fare uso della pipeline è necessario postporre al primo cmdlet l’operatore verticale pipeline ( | ). Con più pipeline si possono costruire comandi da usare in complessi tasks , il tutto in un singolo cmdlet in grado di raggiungere risultati sorprendenti.

Esempio 1

Get-User –OrganizationalUnit “OU=Roma,DC=e2k7lab,DC=local” |Set-User –Fax 06-1234567

Con questo esempio ho assegnato a tutti gli utenti dell’ Unità organizzativa  “Roma”  del dominio “e2k7lab.local” uno specifico numero di fax.

Esempio 2

Get-Mailbox  |Get-mailboxstatistics |Sort-Object –Property totalitemsize

Con questo esempio si visualizzano le statistiche delle mailbox ordinate per la proprietà “TotalsizeItem”, che indica la dimensione della mailbox stessa.

 

Esempio 3

Get-Mailbox |Get-mailboxstatistics |Sort-Object –Property totalitemsize |ft displayname, storagegroupname, totalitemsize

Con l’esempio 3 otteniamo l’elenco delle statistiche mailbox, ordinate per dimensione e visualizzate in formato lista con le sole proprietà identificabili nella figura seguente.

image

 

Come avrete notato,  negli esempi siamo partiti con l’utilizzare una unica pipeline per arrivare all’ultimo esempio dove se ne contano tre. Più pipeline si utilizzano più tasks complessi siamo in grado di eseguire!

 

Buona Pipeline a tutti! :-)

 

 

Massimiliano Sechi