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
Please also mark the comments that contributed to the solution of the article
Content-Key: 278256
Url: https://administrator.de/contentid/278256
Printed on: April 23, 2024 at 22:04 o'clock
5 Comments
Latest comment
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.