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“.
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.
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:
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:
1
|
$object Export-Csv -NoTypeInformation -Path .\log.csv -Delimiter ‚;‘
|
Oder mit einer Funktion:
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:
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