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”.

PowerShell

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”.

PowerShell

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:

PowerShell

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:

PowerShell

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

Of met een functie:

PowerShell

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:

PowerShell

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

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.