Passaggio all'ora legale 31 marzo 2019 02:0003:00 sposta avanti l'orologio di 1 ora (si dorme 1 ora in meno)
Dalla PowerShell versione 3 è possibile creare degli oggetti custom in modo semplice tramite l'uso delle hash table e cast ad oggetto:
$obj = [PSCustomObject]@{Name="Test"; Positon=1; Date=(Get-Date)}
Il trucco è quello di creare un hash table @{} valorizzato con i nomi e valori che le proprietà devono avere
@{Name="Test"; Positon=1; Date=(Get-Date)}
poi fare un cast ad un oggetto
[PSCustomObject]@{Name="Test"; Positon=1; Date=(Get-Date)}
l'oggetto PSCustomObject è un oggetto vuoto pensato per questo utilizzo.
I nomi dalle proprietà sono separati dai valori tramite un simbolo uguale (=), mentre le proprietà sono separate tra di loro da un punto e virgola (;)
Il risultato a video è questo:
Name Positon Date
---- ------- ----
Test       1 04/02/2016 22:18:44

Se creo una serie di oggetti, ad esempio in un ciclo for-each (%), in realtà sto creando una collection di oggetti. Questi saranno disponibili in output e potranno essere passati, tramite la pipe (|), in input al successivo comando.
In questo esempio leggo una directory e mi faccio restituire un oggetto custom che ha 2 proprietà, il nome del file (FileName) e la sua lunghezza (FileLen):
$d = dir | %{ $l=$_.Name.length; [PSCustomObject]@{FileName=$_.Name; FileLen=$l} }
$d
da un risultato simile a questo
FileName                                                            FileLen
--------                                                            -------
Blocchi appunti di OneNote                                               26
Fiddler2                                                                  8
File di Outlook                                                          15
File ricevuti                                                            13
Forme personalizzate                                                     20
Graphics                                                                  8
...
poi posso ad esempio filtrare con una where (punto di domanda) per selezionare solo quelli che hanno il nome file più lungo di 30 caratteri:
$d | ? {$_.FileLen -gt 30 }
da come risultato:
FileName                                                            FileLen
--------                                                            -------
Modelli di Office personalizzati                                         32
RemoteDesktopConnections.rdg.old                                         32
SpecificheSistemadiintegrazionedocumentale (DRAFT -1 20141201).docx      67