Scopri come creare dei file CSV ben strutturati con l’aiuto di script PowerShell: usa PowerShell Custom Objects combinato con il commandlet Export-csv.

Introduzione agli oggetti personalizzati di PowerShell

Gli oggetti personalizzati sono oggetti “generici” che puoi creare tu stesso in PowerShell.

Un oggetto personalizzato ti permette di definire varie proprietà che possono essere aggiunte dinamicamente agli script PowerShell. Un oggetto personalizzato può avere delle proprietà predefinite come qualsiasi altro oggetto o puoi aggiungerle dinamicamente durante il runtime quando necessario.

Ci sono molti modi per usare gli oggetti personalizzati e trasformarli in strumenti utili. È possibile:

  • mantenere una “variabile di stato” nei file di log o
  • trasferire più messaggi contemporaneamente a una funzione senza usare troppe variabili.

Generare oggetti personalizzati PowerShell

Si crea un oggetto personalizzato PowerShell con il commandlet “New-Object”.

PowerShell

1
$object = New-Oggetto PSObject

In questo esempio, abbiamo creato un oggetto di tipo “PSCustomObject”.

Per ora l’oggetto iniziale è vuoto e non ha altre caratteristiche. Puoi aggiungere nuove caratteristiche usando il commandlet “Add-Member”.

PowerShell

1
$object | Add-Member NoteProperty “Color” “Red”

Come risultato, l’oggetto ha ora la caratteristica “Color=red”. Potete ripetere questa operazione tutte le volte che volete e dare all’oggetto caratteristiche diverse:

PowerShell

1
$object | Add-Member NoteProperty “Size” 1

Esportazione di oggetti personalizzati come CSV

Un grande vantaggio è che puoi trasferire l’intero oggetto ad altre funzioni o commandlets:

PowerShell

1
$object Export-Csv -NoTypeInformation -Path .\log.csv -Delimitatore ‘;’

O con una funzione:

PowerShell

1
2
3
4
5

funzione my-export {
param($myInput)
$myInput Export-Csv -NoTypeInformation -Path .\log.csv -Delimitatore ‘;’
}
my-export $object

Qui abbiamo creato un file .csv che assomiglia a questo:

Colore Dimensione
Rosso 1

E di conseguenza, il testo appare così:

“Colore”; “Dimensione”
“Rosso”; “1″

Puoi anche combinare diversi oggetti in una lista o in un array per visualizzarli collettivamente:

PowerShell

1
2
3
4
5
6
7
8
9
10
11
12
13

$list = @()
$object1 = Nuovo-Oggetto PSObject
$object1 | Add-Member NoteProperty “Name” “Alice”
$object1 | Add-Member NoteProperty “Color” “Red”
$object1 | Add-Member NoteProperty “Size” 1
$list += $object1
$object2 = New-Object PSObject
$object2 | Add-Member NoteProperty “Name” “Bob”
$object2 | Add-Member NoteProperty “Color” “Blue”
$object2 | Add-Member NoteProperty “Size” 2
$list += $object2
$list | Export-Csv -NoTypeInformation -Path .\log.csv -Delimitatore ‘;’

Come risultato, il nuovo file .csv contiene automaticamente entrambi gli oggetti:

Nome Colore Dimensione
Alice Rosso 1
Bob Blu 2

Secondo, il testo appare come:

“Nome”; “Colore”; “Dimensione”
“Alice”; “Rosso”; “1″
“Bob”; “Blu”; “2″

In sintesi, gli oggetti personalizzati PowerShell combinati con la commandlet Export-csv sono uno strumento efficace e utile per esportare serie di dati in file .csv.

FirstAttribute AG – Microsoft Consulting Partner per
Migrazione e Active Directory

Consulenza AD | AD Migration

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.