Upptäck hur du skapar överskådliga CSV-filer med hjälp av PowerShell-skript: använd PowerShell Custom Objects i kombination med kommandot Export-csv.

Introduktion av PowerShell Custom Objects

Anpassade objekt är ”generiska” objekt som du själv kan skapa i PowerShell.

Med ett anpassat objekt kan du definiera olika egenskaper som dynamiskt kan läggas till i PowerShell-skript. Ett anpassat objekt kan antingen ha fördefinierade egenskaper som alla andra objekt eller så kan du lägga till dem dynamiskt under körning när det behövs.

Det finns många sätt att använda anpassade objekt och göra dem till användbara verktyg. Du kan antingen:

  • behålla en ”statusvariabel” i loggfiler eller
  • överföra flera meddelanden samtidigt till en funktion utan att använda för många variabler.

Generering av anpassade PowerShell-objekt

Du skapar ett anpassat PowerShell-objekt med kommandotalet ”New-Object”.

PowerShell

1
$object = New-Objekt PSObject

I detta exempel, har vi skapat ett objekt av typen ”PSCustomObject”.

För tillfället är det ursprungliga objektet tomt och har inga ytterligare funktioner. Du kan lägga till nya funktioner med hjälp av kommandotjänsten ”Add-Member”.

PowerShell

1
$object | Add-Medlem NoteProperty ”Color” ”Red”

Som ett resultat, har objektet nu egenskapen ”Color=red”. Du kan upprepa detta så många gånger du vill och ge objektet olika egenskaper:

PowerShell

1
$object | Add-Member NoteProperty ”Size” 1

Export av anpassade objekt som CSV

En stor fördel är att du kan överföra hela objektet till andra funktioner eller commandlets:

PowerShell

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

Och med en funktion:

PowerShell

1
2
3
4
5

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

Här skapade vi en .csv-fil som ser ut så här:

Färg Storlek
Röd 1

Och följaktligen ser texten ut så här:

”Color”; ”Size”
”Red”; ”1″

Du kan också kombinera flera objekt i en lista eller en array för att visa dem tillsammans:

PowerShell

1
2
3
4
5
6
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-Medlem 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 ’;’

Det resulterar i att din nya .csv-filen innehåller automatiskt båda objekten:

Namn Färg Storlek
Alice Röd 1
Bob Blå 2

Tillhörigt, texten som följer:

”Name”; ”Color”; ”Size”
”Alice”; ”Red”; ”1″
”Bob”; ”Blue”; ”2″

Sammanfattningsvis är PowerShell Custom Objects i kombination med Export-csv commandlet ett effektivt och användbart verktyg för att exportera data till .csv-filer.

FirstAttribute AG – Microsoft Consulting Partner for
Migration and Active Directory

AD Consulting | AD Migration

.

Lämna ett svar

Din e-postadress kommer inte publiceras.