Benutzer mit den meisten Antworten
Variable in Where-object

Frage
-
$wahl = read-host "Welche Netzwerkkarte soll genutzt werden?" if (($wahl -lt $DeviceList.length) -and ($wahl -ge 0)) { gwmi -class "Win32_networkAdapterConfiguration" -filter "IPEnabled = True"| where-object {$_.Description -match $DeviceList[$wahl]} }
So sieht es im Moment aus. Jedoch wird nichts ausgegeben, obwohl das Array voll ist. Wenn ich bei where-object einen Teil der Netzwerkkarte eingebe, wird das erfolgreich erkannt. Aber irgendwie komme ich mit der Variablenverwendung nicht klar.
Was mach ich falsch?
Gruß
Simon
Antworten
-
Hallo Robert,
hab gerade das Problem gefunden. Es lag daran, dass ich die description mit dem win32 objekt verglichen hatte. Wenn ich das Objekt in der Pipeline noch mit .description versehe, funktioniert alles =) Danke trotzdem!
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 17. August 2011 22:07
Alle Antworten
-
Moin,
ich würde tippen, dass "-match" als Vergleichsoperator das Problem ist. -match vergleich mit regulären Ausdrücken.
Wenn die Angaben 100% identisch sind, nimm lieber -eq, ist deutlich schneller.
Ansonsten wäre -like oder -ilike auch eine Wahl, mit Platzhaltern.
Lies Dich mal in die Hilfe ein: get-help about_Comparison_Operators
Grüße aus Berlin schickt Robert
MVP Exchange Server -
Hallo Robert,
hab gerade das Problem gefunden. Es lag daran, dass ich die description mit dem win32 objekt verglichen hatte. Wenn ich das Objekt in der Pipeline noch mit .description versehe, funktioniert alles =) Danke trotzdem!
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 17. August 2011 22:07
-
Moin,
hab gerade das Problem gefunden. Es lag daran, dass ich die description mit dem win32 objekt verglichen hatte. Wenn ich das Objekt in der Pipeline noch mit .description versehe, funktioniert alles =) Danke trotzdem!
tja, da Du nur einen kleinen Teil gepostet hast und wir nicht sehen konnten, was "$DeviceList" ist, kann natürlich auch niemand sagen, dass da ein Teil fehlt - zumal viele Objekte dank der vererbten "toString()"-Funktion oft mals ohne Attribute genau das liefern, was man braucht.
Trotzdem solltest Du Dir -match nochmal ansehen. Wie gesagt, ist es ein Vergleich mit regulären Ausdrücken und je nach der Description kannst Du sehr unerwartete Ergebnisse bekommen. ;)
Grüße aus Berlin schickt Robert
MVP Exchange Server