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

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:
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:
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:
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.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn