Wie man Eigenschaften zu Objekten in PowerShell hinzufügt

  1. Verwendung von Hash-Tabellen zur Erstellung benutzerdefinierter Objekte in PowerShell
  2. Verwendung von Add-Member, um Eigenschaften zu Objekten in PowerShell hinzuzufügen
  3. Verwendung von Properties.Add(), um Eigenschaften zu Objekten in PowerShell hinzuzufügen
  4. Verwendung von Select-Object, um Eigenschaften zu Objekten in PowerShell hinzuzufügen
  5. Fazit
Wie man Eigenschaften zu Objekten in PowerShell hinzufügt

Dieser Artikel befasst sich mit verschiedenen Methoden zum Hinzufügen von Eigenschaften zu Objekten in PowerShell, eine wesentliche Technik für PowerShell-Benutzer von Anfängern bis zu Experten. Wir beginnen mit der Untersuchung der Verwendung von Hash-Tabellen zur Erstellung benutzerdefinierter Objekte, einem unkomplizierten, aber leistungsstarken Ansatz.

Anschließend stellen wir das Cmdlet Add-Member vor, ein vielseitiges Werkzeug zum dynamischen Anhängen von Eigenschaften an vorhandene Objekte. Wenn wir tiefer eintauchen, entdecken wir die Feinheiten der Methode Properties.Add(), die eine nuanciertere und kontrollierte Möglichkeit bietet, Objekte zu erweitern.

Schließlich diskutieren wir die Verwendung von Select-Object in Kombination mit einer Hash-Tabelle, ein perfektes Verfahren für temporäre Änderungen und die Bewahrung des Zustands des ursprünglichen Objekts.

Dieser umfassende Leitfaden zielt darauf ab, praktische Einblicke und Beispiele zu bieten, um PowerShell-Benutzern zu ermöglichen, Objekte auf ihre spezifischen Bedürfnisse zuzuschneiden.

Verwendung von Hash-Tabellen zur Erstellung benutzerdefinierter Objekte in PowerShell

Bevor wir Eigenschaften zu einem Objekt hinzufügen, müssen wir zuerst eines erstellen. Eine Möglichkeit, dies zu tun, ist über Hash-Tabellen.

Um es kurz zu definieren: Hash-Tabellen sind Mengen von Schlüssel-Wert-Paaren, die wir benötigen, um die Eigenschaften eines Objekts in PowerShell zu erstellen und zuzuweisen. Im Beispiel erstellen wir eine Hash-Tabelle, die ein einzelnes Objekt und seine Eigenschaften darstellt.

Sobald die Hash-Tabelle $sampleHashtable definiert ist, können wir den Typbeschleuniger PSCustomObject verwenden, um eine Instanz der Klasse PSCustomObject zu erstellen.

Nach dem Ausführen des Codeschnipsels erhalten wir ein Objekt $sampleHashtable vom Typ PSCustomObject mit im Programm definierten Eigenschaften.

Beispiel 1:

$sampleObject = [PSCustomObject]@{
    ID    = 1
    Shape = "Square"
    Color = "Blue"
}

Wie wir sehen können, nachdem wir $sampleHashtable erstellt haben, können wir auf jede Eigenschaft zugreifen, als ob sie von einem integrierten PowerShell-Cmdlet wie Get-Service stammt.

Verwendung von Add-Member, um Eigenschaften zu Objekten in PowerShell hinzuzufügen

Die Vielseitigkeit von PowerShell als Skriptsprache verdankt sich teilweise ihrer Fähigkeit, Objekte dynamisch zu manipulieren. Ein herausragendes Beispiel für diese Fähigkeit ist das Cmdlet Add-Member, das es Benutzern ermöglicht, Eigenschaften und Methoden zu Objekten zur Laufzeit hinzuzufügen.

Das Cmdlet Add-Member ist ein essentielles Werkzeug in PowerShell zum dynamischen Hinzufügen von Mitgliedern, wie Eigenschaften, Methoden oder Ereignissen, zu einer Instanz eines Objekts. Diese Funktion ist besonders nützlich, um Objekte anzupassen, um spezifischen Anforderungen gerecht zu werden, oder um Datenstrukturen mit zusätzlichen Informationen zu erweitern.

Beispiel:

$sampleObject | Add-Member -MemberType NoteProperty -Name 'Size' -Value 'Large'
Write-Output $sampleObject

In diesem Beispiel haben wir begonnen, $sampleObject zu erstellen, ein benutzerdefiniertes PowerShell-Objekt mit vordefinierten Eigenschaften. Unser Ziel war es, dieses Objekt zu erweitern, indem wir eine neue Eigenschaft hinz ufügten.

Mit dem Cmdlet Add-Member fügten wir eine NoteProperty mit dem Namen Size und dem Wert Large zu $sampleObject hinzu. Dieser Prozess demonstriert die Kraft von PowerShell beim dynamischen Erweitern von Objekten.

NoteProperty wurde gewählt, weil es für statische Werte geeignet ist, was unsere Anforderung war.

Zuletzt verwendeten wir Write-Host, um das aktualisierte Objekt auszugeben und effektiv die Hinzufügung der neuen Eigenschaft zu demonstrieren.

Ausgabe:

Eigenschaften zu Objekten mit PowerShell hinzufügen - Ausgabe 1

Verwendung von Properties.Add(), um Eigenschaften zu Objekten in PowerShell hinzuzufügen

Eine weniger bekannte, aber leistungsstarke Methode zur Erweiterung von Objekten ist die Verwendung der Methode Properties.Add(). Dieser Ansatz ist besonders nützlich, wenn man mit benutzerdefinierten Objekten arbeitet oder wenn man Objekte auf kontrolliertere Art und Weise ändern muss.

Die Methode Properties.Add() ist eine Möglichkeit, Eigenschaften zu einem vorhandenen PowerShell-Objekt hinzuzufügen. Diese Methode ist Teil des zugrunde liegenden .NET-Frameworks und bietet einen niedrigeren Ansatz im Vergleich zum häufiger verwendeten Cmdlet Add-Member.

Beispiel:

$sampleObject.psobject.Properties.Add([PSNoteProperty]::new('Size', 'Large'))
Write-Host ($sampleObject | Out-String)

In diesem Beispiel haben wir $sampleObject erstellt, ein Objekt mit vordefinierten Eigenschaften.

Unser Ziel war es, es zu erweitern, indem wir eine neue Eigenschaft mit dem Namen Size hinzufügten. Zu diesem Zweck haben wir die Methode .psobject.Properties.Add([PSNoteProperty]::new()) verwendet.

Diese Methode ist etwas nuancierter als Add-Member. Sie beinhaltet die direkte Erstellung eines neuen PSNoteProperty-Objekts und dessen Hinzufügung zur Sammlung der Eigenschaften des Objekts.

Zum Schluss, unter Verwendung von Write-Host, geben wir das aktualisierte Objekt aus, um die Hinzufügung der neuen Eigenschaft zu bestätigen.

Ausgabe:

Eigenschaften zu Objekten mit PowerShell hinzufügen - Ausgabe 2

Verwendung von Select-Object, um Eigenschaften zu Objekten in PowerShell hinzuzufügen

Eine weitere Technik umfasst die Verwendung von Select-Object in Kombination mit einer Hash-Tabelle (@{}), um Eigenschaften zu Objekten hinzuzufügen. Diese Methode ist besonders nützlich, um benutzerdefinierte Ansichten zu erstellen oder Objekte zu erweitern, ohne das ursprüngliche Objekt zu ändern.

Die Methode Select-Object *, @{} wird verwendet, um ein neues Objekt zu erstellen, indem ein vorhandenes mit zusätzlichen Eigenschaften erweitert wird. Dieser Ansatz wird häufig für temporäre Änderungen an Objekten verwendet, z. B. für Anzeigezwecke oder bei der Vorbereitung von Daten für den Export.

Es ist nicht destruktiv, was bedeutet, dass das ursprüngliche Objekt unverändert bleibt.

Beispiel:

$extendedObject = $sampleObject | Select-Object *, @{
    Name       = 'Size'
    Expression = { 'Large' }
}
Write-Host ($extendedObject | Out-String)

In diesem Beispiel begannen wir mit unserem $sampleObject und setzten uns das Ziel, es mit einer neuen Eigenschaft namens Size zu erweitern. Unser Ansatz bestand nicht darin, das ursprüngliche Objekt zu ändern, wodurch dessen Integrität gewahrt blieb.

Wir erreichten dies, indem wir $sampleObject in Select-Object leiteten, wodurch wir PowerShell effektiv instruieren, alle vorhandenen Eigenschaften (*) zu übertragen und eine neue Eigenschaft einzuführen, die durch eine Hash-Tabelle definiert wurde.

In unserer Hash-Tabelle haben wir klar den Namen der neuen Eigenschaft, Size, angegeben und ihren Wert, Large, innerhalb eines Ausdrucksblocks zugewiesen. Dieser Ansatz ist besonders elegant, da er ein neues Objekt, $extendedObject, erstellt, das mit der zusätzlichen Eigenschaft angereichert ist.

Ausgabe:

Eigenschaften zu Objekten mit PowerShell hinzufügen - Ausgabe 3

Fazit

Im Verlauf dieses Artikels haben wir verschiedene Methoden zum Hinzufügen von Eigenschaften zu Objekten in PowerShell erkundet, jede mit ihren einzigartigen Vorteilen und Anwendungen. Wir begannen mit der Erstellung benutzerdefinierter Objekte mithilfe von Hash-Tabellen und legten damit das Fundament für das Verständnis von Objekt-Eigenschaften in PowerShell.

Wir haben dann das Cmdlet Add-Member untersucht, einen Grundpfeiler im PowerShell-Scripting zur dynamischen Erweiterung von Objekten. Die Erforschung der Methode Properties.Add() öffnete ein Fenster zu einem tiefergehenden Ansatz und ermöglichte eine kontrollierte Manipulation von Objekt-Eigenschaften.

Zuletzt zeigte die Verwendung von Select-Object mit einer Hash-Tabelle eine nicht destruktive und elegante Möglichkeit, Objekte zu erweitern. Jede Methode, von der unkomplizierten bis zur komplexeren, hat ihren eigenen Zweck und bietet PowerShell-Benutzern ein reichhaltiges Werkzeugset zur Anpassung und Verwaltung von Objekten in ihren Skripten.

Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Verwandter Artikel - PowerShell Object