Come aggiungere proprietà agli oggetti in PowerShell
- Usa Hashtable per Creare Oggetti Personalizzati in PowerShell
-
Usa
Add-Member
per Aggiungere Proprietà agli Oggetti in PowerShell -
Usa
Properties.Add()
per Aggiungere Proprietà agli Oggetti in PowerShell -
Usa
Select-Object
per Aggiungere Proprietà agli Oggetti in PowerShell - Conclusione

Questo articolo analizza vari metodi per aggiungere proprietà agli oggetti in PowerShell, una tecnica essenziale per gli utenti di PowerShell che vanno dai principianti agli esperti. Iniziamo esplorando l’uso delle hashtable per creare oggetti personalizzati, un approccio semplice ma potente.
Seguendo questo, introduciamo il cmdlet Add-Member
, uno strumento versatile per aggiungere dinamicamente proprietà agli oggetti esistenti. Man mano che ci immergiamo più a fondo, scopriamo le complessità del metodo Properties.Add()
, offrendo un modo più sfumato e controllato di migliorare gli oggetti.
Infine, discutiamo dell’utilizzo di Select-Object
in combinazione con una hashtable, un metodo perfetto per modifiche temporanee e per preservare lo stato originale dell’oggetto.
Questa guida completa mira a fornire spunti pratici ed esempi per consentire agli utenti di PowerShell di personalizzare gli oggetti in base alle loro esigenze specifiche.
Usa Hashtable per Creare Oggetti Personalizzati in PowerShell
Prima di aggiungere proprietà a un oggetto, dobbiamo prima crearne uno. Un modo per farlo è attraverso le hashtable.
Per definire brevemente, le hashtable sono insiemi di chiavi o coppie di valori che dobbiamo creare e assegnare alle proprietà di un oggetto in PowerShell. Nel nostro esempio, stiamo creando una hashtable che rappresenta un singolo oggetto e le sue proprietà.
Una volta che la hashtable, $sampleHashtable
, è stata definita, possiamo poi utilizzare l’acceleratore di tipo PSCustomObject
per creare un’istanza della classe PSCustomObject
.
Dopo aver eseguito il frammento di codice, otterremo un oggetto $sampleHashtable
di tipo PSCustomObject
con proprietà definite nel programma.
Esempio 1:
$sampleObject = [PSCustomObject]@{
ID = 1
Shape = "Square"
Color = "Blue"
}
Come possiamo vedere, dopo aver creato $sampleHashtable
, saremo in grado di fare riferimento a ciascuna proprietà come se provenisse da un cmdlet di PowerShell integrato come Get-Service
.
Usa Add-Member
per Aggiungere Proprietà agli Oggetti in PowerShell
La versatilità di PowerShell come linguaggio di scripting è in parte dovuta alla sua capacità di manipolare dinamicamente gli oggetti. Un esempio principale di questa capacità è il cmdlet Add-Member
, che consente agli utenti di aggiungere proprietà e metodi agli oggetti durante il runtime.
Il cmdlet Add-Member
è uno strumento essenziale in PowerShell per aggiungere dinamicamente membri, come proprietà, metodi o eventi, a un’istanza di un oggetto. Questa funzionalità è particolarmente utile per personalizzare gli oggetti in base a esigenze specifiche o per arricchire le strutture dati con informazioni aggiuntive.
Esempio:
$sampleObject | Add-Member -MemberType NoteProperty -Name 'Size' -Value 'Large'
Write-Output $sampleObject
In questo esempio, abbiamo iniziato creando $sampleObject
, un oggetto personalizzato di PowerShell con proprietà predefinite. Il nostro obiettivo era quello di migliorare questo oggetto aggiungendo una nuova proprietà.
Utilizzando il cmdlet Add-Member
, abbiamo aggiunto una NoteProperty
chiamata Size
con il valore Large
a $sampleObject
. Questo processo dimostra il potere di PowerShell nell’estendere dinamicamente gli oggetti.
NoteProperty
è stato scelto perché è adatto ai valori statici, che era il nostro requisito.
Infine, abbiamo usato Write-Host
per stampare l’oggetto aggiornato, dimostrando efficacemente l’aggiunta della nuova proprietà.
Output:
Usa Properties.Add()
per Aggiungere Proprietà agli Oggetti in PowerShell
Un metodo meno noto ma potente per migliorare gli oggetti è utilizzare il metodo Properties.Add()
. Questo approccio è particolarmente utile quando si lavora con oggetti personalizzati o quando è necessario modificare gli oggetti in modo più controllato.
Il metodo Properties.Add()
è un modo per aggiungere proprietà a un oggetto PowerShell esistente. Questo metodo fa parte del framework sottostante .NET
e fornisce un approccio a livello inferiore rispetto al cmdlet Add-Member
più comunemente usato.
Esempio:
$sampleObject.psobject.Properties.Add([PSNoteProperty]::new('Size', 'Large'))
Write-Host ($sampleObject | Out-String)
In questo esempio, abbiamo creato $sampleObject
, un oggetto con proprietà predefinite.
Il nostro obiettivo era migliorarlo aggiungendo una nuova proprietà chiamata Size
. A questo scopo, abbiamo utilizzato il metodo .psobject.Properties.Add([PSNoteProperty]::new())
.
Questo metodo è un po’ più sfumato rispetto a Add-Member
. Comporta la creazione di un nuovo oggetto PSNoteProperty
direttamente e quindi la sua aggiunta alla collezione delle proprietà dell’oggetto.
Infine, utilizzando Write-Host
, abbiamo restituito l’oggetto aggiornato per confermare l’aggiunta della nuova proprietà.
Output:
Usa Select-Object
per Aggiungere Proprietà agli Oggetti in PowerShell
Un’altra tecnica prevede l’uso di Select-Object
combinato con una hashtable (@{}
) per aggiungere proprietà agli oggetti. Questo metodo è particolarmente utile per creare viste personalizzate o estendere oggetti senza modificare l’oggetto originale.
Il metodo Select-Object *, @{}
viene utilizzato per creare un nuovo oggetto estendendo uno esistente con proprietà aggiuntive. Questo approccio è comunemente utilizzato per modifiche temporanee di oggetti, come per scopi di visualizzazione o quando si prepara un insieme di dati per l’esportazione.
È non distruttivo, il che significa che l’oggetto originale rimane invariato.
Esempio:
$extendedObject = $sampleObject | Select-Object *, @{
Name = 'Size'
Expression = { 'Large' }
}
Write-Host ($extendedObject | Out-String)
In questo esempio, abbiamo iniziato con il nostro $sampleObject
e ci siamo posti l’obiettivo di arricchirlo con una nuova proprietà chiamata Size
. Il nostro approccio non ha comportato alterare l’oggetto originale, mantenendone l’integrità.
Abbiamo raggiunto questo obiettivo passando $sampleObject
a Select-Object
, istruendo efficacemente PowerShell a mantenere tutte le proprietà esistenti (*
) e a introdurre una nuova proprietà definita da una hashtable.
Nella nostra hashtable, abbiamo chiaramente specificato il nome della nuova proprietà, Size
, e assegnato il suo valore, Large
, all’interno di un blocco di espressioni. Questo approccio è particolarmente elegante, poiché costruisce un nuovo oggetto, $extendedObject
, arricchito con la proprietà aggiuntiva.
Output:
Conclusione
Durante questo articolo, abbiamo esplorato varie metodologie per aggiungere proprietà agli oggetti in PowerShell, ognuna con i suoi vantaggi e applicazioni uniche. Iniziando con la creazione di oggetti personalizzati utilizzando le hashtable, abbiamo gettato le basi per comprendere le proprietà degli oggetti in PowerShell.
Successivamente, abbiamo esplorato il cmdlet Add-Member
, un pilastro nello scripting di PowerShell per migliorare dinamicamente gli oggetti. L’esplorazione del metodo Properties.Add()
ha aperto una finestra su un approccio più approfondito, consentendo una manipolazione controllata delle proprietà degli oggetti.
Infine, l’uso di Select-Object
con una hashtable ha dimostrato un modo non distruttivo ed elegante per estendere gli oggetti. Ogni metodo, dal più semplice al più complesso, serve a uno scopo unico, offrendo agli utenti di PowerShell un ricco toolkit per personalizzare e gestire gli oggetti nei loro script.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn