[PowerShell] Verschachtelte Eigenschaften von Objekten (-ExpandProperty)

Misdemeanor

Lt. Junior Grade
Registriert
Mai 2009
Beiträge
491
Hallo zusammen!

Wenn ich via PowerShell die Funktion Get-Member aufrufe, sehe ich weitere Methoden und Eigenschaften, die ein Objekt haben kann.

Gibt es eine Möglichkeit, dass ich sehe, wie weit runter ich das vorantreiben kann? Welche Eigenschaften weitere Unter-Eigenschaften ein Objekt haben kann?

Beispiel:
Code:
# Liefert die Methoden und Eigenschaften von Get-Service
Get-Service | Get-Member

# Liefert die Eigenschaften zur Unter-Eigenschaft von "Status"
Get-Service | Select-Object -ExpandProperty Status | Get-Member

Der Grund ist, dass ich über VMware PowerCLI (eine PowerShell mit spezifischen VMware-Erweiterungen) versucht habe, alle Maschinen auf einem Host auszulesen und die für die NICs vergebenen IP-Adressen auszulesen. Soweit so gut, habe dafür ein vorgefertigtes Script verwendet, aber woher weiß ich, welche Untereigenschaften wie IP-Adressen verborgen sind, wenn ich es nicht bei jeder einzelnen Eigenschaft händisch ausprobieren will?

Das Script war:
Code:
get-vm | select name, {$_ | select -ExpandProperty guest | select -expandproperty ipaddress}

Hierarchisch gesehen steht zu oberst das Objekt, gefolgt von weiteren Eigenschaften.

Code:
get-vm |
       ∟ select name,
         {$_ |
             ∟ select -ExpandProperty guest |
                                            ∟ select -ExpandProperty ipaddress}
Rufe ich also nur get-vm | Get-Member auf, so sehe ich nicht, dass es eine weitere Untereigenschaft ipaddress gibt, ich sehe nur die Hierarchiestufe weiter oben, also name, daran hängt dann guest, mit dem ich alleine nicht viel anfangen kann. Erst durch -ExpandProperty und die Eingabe weiterer Befehle sehe ich überhaupt, was noch alles am Objekt dran hängt, und das würde ich gerne aufschlüsseln - falls möglich.

Hat dazu jemand eine Idee?

Danke & Gruß
M.
 
Zurück
Oben