Powershell Abruf von Daten aus einem Array
Hallo,
ich habe ein globales Array aus dem ich bestimmte Daten haben möchte. Das Array $a umfasst folgende Felder: ESXHost, VMNIC, LLDPPort, VLAN, etc.
Wenn ich aus einer anderen Funktion folgenden Aufruf starte:
erhalte ich die VLAN-ID. Ich möchte das ganze jedoch weiter filtern, weil ich letztlich den ESX-Host, sowie die VMNIC abgleichen möchte. Dabei wollte ich mich mit folgender Zeile herantasten.
Wenn ich das abschicke, bleibt die Variable $vlan leer.
Gruß
derhoeppi
ich habe ein globales Array aus dem ich bestimmte Daten haben möchte. Das Array $a umfasst folgende Felder: ESXHost, VMNIC, LLDPPort, VLAN, etc.
Wenn ich aus einer anderen Funktion folgenden Aufruf starte:
$vlan = $a[1].VLAN
erhalte ich die VLAN-ID. Ich möchte das ganze jedoch weiter filtern, weil ich letztlich den ESX-Host, sowie die VMNIC abgleichen möchte. Dabei wollte ich mich mit folgender Zeile herantasten.
$vlan = $a.VLAN | ?{$_.VMNIC -eq "vmnic1"}
Gruß
derhoeppi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 278256
Url: https://administrator.de/forum/powershell-abruf-von-daten-aus-einem-array-278256.html
Ausgedruckt am: 25.04.2025 um 17:04 Uhr
5 Kommentare
Neuester Kommentar

Du meinst statt Array sicherlich ein Objekt-Array, denn nur die haben Eigenschaften 
Du musst in dem Fall dann schon das ganze Objekt übergeben sonst findet das Where-Object ja die Eigenschaft VMNIC nicht ...
Gruß grexit
Du musst in dem Fall dann schon das ganze Objekt übergeben sonst findet das Where-Object ja die Eigenschaft VMNIC nicht ...
$vlan = $a | ?{$_.VMNIC -eq "vmnic1"} | select -Expand VLAN

Simple Powershell Arrays sind Fix aus diesen kannst du kein Element entfernen, jedoch kannst du es so neu aufbauen:
Man kann auch statt simplen Powershell Arrays stattdess .NET Arraylists verwenden wenn man will, bei diesen lassen sich Elemente auch direkt entfernen.
Gruß grexit
$b = $b -ne $vlan
Gruß grexit

das obige geht aber einwandfrei.
Kannst du alternativ natürlich auch so schreiben
Ohne mehr Info über das was du machst, Raten mit der Glaskugel.
Ich würde dir erst mal raten einen Powershellkurs mit den Grundlagen zu Objekten zu absolvieren.
Kannst du alternativ natürlich auch so schreiben
$b = $b | ?{$_ -ne $vlan}
Ohne mehr Info über das was du machst, Raten mit der Glaskugel.
Ich würde dir erst mal raten einen Powershellkurs mit den Grundlagen zu Objekten zu absolvieren.