Ontdek hoe je overzichtelijke CSV-bestanden maakt met behulp van PowerShell-scripts: gebruik PowerShell Custom Objects in combinatie met Export-csv commandlet.
Inleiding tot PowerShell Custom Objects
Custom Objects zijn “generieke” objecten die u zelf in PowerShell kunt maken.
Met een custom object kunt u verschillende eigenschappen definiëren die dynamisch aan PowerShell-scripts kunnen worden toegevoegd. Een aangepast object kan ofwel vooraf gedefinieerde eigenschappen hebben zoals elk ander object, of u kunt ze dynamisch toevoegen tijdens runtime wanneer dat nodig is.
Er zijn veel manieren om aangepaste objecten te gebruiken en ze te veranderen in nuttige hulpmiddelen. U kunt:
- een “statusvariabele” in logbestanden bijhouden of
- meerdere berichten tegelijk naar een functie overbrengen zonder al te veel variabelen te gebruiken.
Genereren van PowerShell Custom Objects
U maakt een PowerShell Custom Object met het commandlet “New-Object”.
1
|
$object = New-Object PSObject
|
In dit voorbeeld, hebben we een object van het type “PSCustomObject” gemaakt.
Voorlopig is het initiële object leeg en heeft het geen verdere kenmerken. U kunt nieuwe kenmerken toevoegen met behulp van het commandlet “Add-Member”.
1
|
$object | Add-.Member NoteProperty “Color” “Red”
|
Als resultaat, heeft het object nu de eigenschap “Kleur=rood”. U kunt dit zo vaak herhalen als u wilt en het object verschillende kenmerken geven:
1
|
$object | Add-Member NoteProperty “Size” 1
|
Exporteren van aangepaste objecten als CSV
Een groot voordeel is dat u het volledige object naar andere functies of commandlets kunt overbrengen:
1
|
$object Export-Csv -NoTypeInformation -Path .\.csv -Delimiter ‘;’
|
Of met een functie:
1
2
3
4
5
|
functie mijn-exporteren {
param($mijnInput)
$mijnInput Export-Csv -NoTypeInformation -Path .\@log.csv -Delimiter ‘;’
}
mijn-export $object
|
Hier hebben we een .csv-bestand gemaakt dat er als volgt uitziet:
Color | Size |
Red | 1 |
En dienovereenkomstig ziet de tekst er als volgt uit:
“Kleur”; “Grootte”
“Rood”; “1″
Je kunt ook meerdere objecten combineren in een lijst of een array om ze gezamenlijk weer te geven:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$list = @()
$object1 = New-Object PSObject
$object1 | Add-Member NoteProperty “Name” “Alice”
$object1 | Add-Lidmaatschap 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 ‘;’
|
Als resultaat bevat uw nieuwe .csv-bestand automatisch beide objecten bevatten:
Name | Color | Size |
Alice | Rood | 1 |
Bob | Blauw | 2 |
Volgens, verschijnt de tekst als:
“Naam”; “Kleur”; “Grootte”
“Alice”; “Rood”; “1″
“Bob”; “Blauw”; “2″
Samenvattend kan worden gesteld dat PowerShell Custom Objects in combinatie met het commando Export-csv een effectief en nuttig hulpmiddel zijn om gegevensverzamelingen te exporteren naar .csv-bestanden te exporteren.
FirstAttribute AG – Microsoft Consulting Partner for
Migration and Active Directory
AD Consulting | AD Migration