Find ud af, hvordan du kan oprette overskuelige CSV-filer ved hjælp af PowerShell-scripts: Brug PowerShell Custom Objects kombineret med kommando-programmet Export-csv.
Introduktion af PowerShell Custom Objects
Brugerdefinerede objekter er “generiske” objekter, som du selv kan oprette i PowerShell.
Med et brugerdefineret objekt kan du definere forskellige egenskaber, som dynamisk kan tilføjes til PowerShell-scripts. Et brugerdefineret objekt kan enten have foruddefinerede egenskaber som ethvert andet objekt, eller du kan tilføje dem dynamisk under kørselstiden, når det er nødvendigt.
Der er mange måder at bruge brugerdefinerede objekter på og gøre dem til nyttige værktøjer. Du kan enten:
- vedligeholde en “statusvariabel” i logfiler eller
- overføre flere meddelelser samtidigt til en funktion uden at bruge for mange variabler.
Generering af PowerShell Custom Objects
Du opretter et PowerShell Custom Object med kommandoplugten “New-Object”.
1
|
$object = New-Objekt PSObject
|
I dette eksempel, har vi oprettet et objekt af typen “PSCustomObject”.
For nu er det oprindelige objekt tomt og har ingen yderligere funktioner. Du kan tilføje nye funktioner ved hjælp af commandletten “Add-Member”.
1
|
$object | Add-Medlem NoteProperty “Color” “Red”
|
Som et resultat, har objektet nu funktionen “Color=red”. Du kan gentage dette så mange gange, du vil, og give objektet forskellige egenskaber:
1
|
$object | Add-Member NoteProperty “Size” 1
|
Eksport af brugerdefinerede objekter som CSV
En stor fordel er, at du kan overføre hele objektet til andre funktioner eller commandlets:
1
|
$object Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
|
Og med en funktion:
1
2
3
4
5
5
|
funktion my-export {
param($myInput)
$myInput Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‘;’
} }
my-export $object
|
Her har vi oprettet en .csv-fil, der ser således ud:
Color | Size |
Red | 1 |
Og tilsvarende ser teksten ud som følger:
“Farve”; “Størrelse”
“Rød”; “1″
Du kan også kombinere flere objekter i en liste eller et array for at vise dem samlet:
1
2
3
4
5
5
6
7
8
9
10
11
12
13
|
$list = @()
$object1 = New-Objekt PSObject
$object1 | Add-Member NoteProperty “Name” “Alice”
$object1 | Add-Medlem 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 ‘;’
|
Som et resultat vil din nye .csv-fil indeholder automatisk begge objekter:
Navn | Farve | Størrelse | |
Alice | Rød | 1 | |
Bob | Blå | Blue | 2 |
I overensstemmelse hermed, teksten ser ud som:
“Navn”; “Farve”; “Størrelse”
“Alice”; “Rød”; “1″
“Bob”; “Blå”; “2″
Sammenfattende er PowerShell Custom Objects kombineret med Export-csv commandlet et effektivt og nyttigt værktøj til at eksportere datasæt til .csv-filer.
FirstAttribute AG – Microsoft Consulting Partner for
Migration and Active Directory
AD Consulting | AD Migration