Erfahren Sie, wie Sie mit Hilfe von PowerShell-Skripten übersichtliche CSV-Dateien erstellen können: Verwenden Sie PowerShell Custom Objects in Kombination mit dem Commandlet Export-csv.

Einführung in benutzerdefinierte PowerShell-Objekte

Benutzerdefinierte Objekte sind „generische“ Objekte, die Sie selbst in PowerShell erstellen können.

Mit einem benutzerdefinierten Objekt können Sie verschiedene Eigenschaften definieren, die dynamisch zu PowerShell-Skripts hinzugefügt werden können. Ein benutzerdefiniertes Objekt kann entweder wie jedes andere Objekt über vordefinierte Eigenschaften verfügen oder Sie können sie bei Bedarf dynamisch während der Laufzeit hinzufügen.

Es gibt viele Möglichkeiten, benutzerdefinierte Objekte zu verwenden und sie in hilfreiche Tools zu verwandeln. Sie können entweder:

  • eine „Statusvariable“ in Protokolldateien verwalten oder
  • mehrere Nachrichten gleichzeitig an eine Funktion übertragen, ohne zu viele Variablen zu verwenden.

Erzeugen von benutzerdefinierten PowerShell-Objekten

Sie erstellen ein benutzerdefiniertes PowerShell-Objekt mit dem Commandlet „New-Object“.

PowerShell

1
$object = New-Object PSObject

In diesem Beispiel, haben wir ein Objekt vom Typ „PSCustomObject“ erstellt.

Das Ausgangsobjekt ist zunächst leer und hat keine weiteren Funktionen. Sie können mit dem Commandlet „Add-Member“ neue Merkmale hinzufügen.

PowerShell

1
$Objekt | Add-.Member NoteProperty „Farbe“ „Rot“

Als Ergebnis, hat das Objekt nun die Eigenschaft „Farbe=rot“. Sie können dies beliebig oft wiederholen und dem Objekt verschiedene Eigenschaften geben:

PowerShell

1
$object | Add-Member NoteProperty „Size“ 1

Exportieren von benutzerdefinierten Objekten als CSV

Ein großer Vorteil ist, dass man das gesamte Objekt an andere Funktionen oder Commandlets übergeben kann:

PowerShell

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

Oder mit einer Funktion:

PowerShell

1
2
3
4
5

Funktion my-exportieren {
param($myInput)
$myInput Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‚;‘
}
my-export $object

Hier haben wir eine .csv-Datei, die wie folgt aussieht:

Farbe Größe
Rot 1

Und dementsprechend sieht der Text wie folgt aus:

„Farbe“; „Größe“
„Rot“; „1″

Sie können auch mehrere Objekte in einer Liste oder einem Array kombinieren, um sie gemeinsam anzuzeigen:

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-Member NoteProperty „Farbe“ „Rot“
$object1 | Add-Member NoteProperty „Größe“ 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 Ergebnis enthält die neue .csv-Datei automatisch beide Objekte enthalten:

Name Farbe Größe
Alice Rot 1
Bob Blau 2

Gemäß, erscheint der Text als:

„Name“; „Farbe“; „Größe“
„Alice“; „Rot“; „1″
„Bob“; „Blau“; „2″

Zusammenfassend lässt sich sagen, dass benutzerdefinierte PowerShell-Objekte in Kombination mit dem Commandlet „Export-csv“ ein effektives und nützliches Tool zum Exportieren von Datensätzen in .csv-Dateien.

FirstAttribute AG – Microsoft Consulting Partner für
Migration und Active Directory

AD Consulting | AD Migration

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.