none
Variable in Where-object RRS feed

  • 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

    Mittwoch, 17. August 2011 12:27

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!

    Mittwoch, 17. August 2011 15:04

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
    Mittwoch, 17. August 2011 14:36
  • 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!

    Mittwoch, 17. August 2011 15:04
  • 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
    Mittwoch, 17. August 2011 15:30