Découvrez comment créer des fichiers CSV clairement agencés à l’aide de scripts PowerShell : utilisez les objets personnalisés PowerShell combinés à la commandlet Export-csv.

Introducing PowerShell Custom Objects

Les objets personnalisés sont des objets « génériques » que vous pouvez créer vous-même dans PowerShell.

Un objet personnalisé vous permet de définir diverses propriétés qui peuvent être ajoutées dynamiquement aux scripts PowerShell. Un objet personnalisé peut soit avoir des propriétés prédéfinies comme n’importe quel autre objet, soit vous pouvez les ajouter dynamiquement pendant l’exécution lorsque cela est nécessaire.

Il existe de nombreuses façons d’utiliser les objets personnalisés et de les transformer en outils utiles. Vous pouvez soit :

  • maintenir une « variable d’état » dans les fichiers journaux ou
  • transférer plusieurs messages simultanément à une fonction sans utiliser trop de variables.

Générer des objets personnalisés PowerShell

Vous créez un objet personnalisé PowerShell avec la commandlet « New-Object ».

PowerShell

1
$object = New-Objet PSObject

Dans cet exemple, nous avons créé un objet de type « PSCustomObject ».

Pour l’instant, l’objet initial est vide et n’a pas d’autres fonctionnalités. Vous pouvez ajouter de nouvelles fonctionnalités en utilisant la commandlet « Add-Member ».

PowerShell

1
$objet | Ajouter-…Membre NotePropriété « Couleur » « Rouge »

En conséquence, l’objet a maintenant la caractéristique « Color=red ». Vous pouvez répéter cela autant de fois que vous le souhaitez et donner à l’objet des caractéristiques différentes :

PowerShell

1
$object | Add-Membre NoteProperty « Size » 1

Exportation d’objets personnalisés en tant que CSV

Un avantage majeur est que vous pouvez transférer l’objet entier à d’autres fonctions ou commandlets :

PowerShell

1
$objet Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’

Ou avec une fonction :

PowerShell

1
2
3
4
5

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

Nous avons ici créé un fichier .csv qui ressemble à ceci:

Color Size
Red 1

Et en conséquence, le texte apparaît comme ceci :

« Couleur » ; « Taille »
« Rouge » ; « 1″

Vous pouvez également combiner plusieurs objets dans une liste ou un tableau pour les afficher collectivement :

PowerShell

1
2
3
4
5
6

.

7
8
9
10
11
12
13

$list = @()
$object1 = New-Objet 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 -Delimiter ‘;’

En conséquence, votre nouveau fichier .csv contient automatiquement les deux objets :

.

Nom Couleur Taille
Alice Rouge 1
Bob Bleu 2

En fonction, le texte apparaît comme suit :

« Nom » ; « Couleur » ; « Taille »
« Alice » ; « Rouge » ; « 1″
« Bob » ; « Bleu » ; « 2″

En résumé, les objets personnalisés PowerShell combinés à la commandlet Export-csv sont un outil efficace et utile pour exporter des ensembles de données vers des fichiers .csv.

FirstAttribute AG – Partenaire conseil Microsoft pour
Migration et Active Directory

Conseil AD | Migration AD

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.