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 ».
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 ».
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 :
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 :
1
|
$objet Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
|
Ou avec une fonction :
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 :
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
.