kann ich die Netzwerkkarte Zähler Beispiel Namen wie so erhalten:Powershell: Counter Instanzname für bestimmte Netzwerkkarte
Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface
, die für Namen so etwas wie dieses gibt:
Intel[R] Ethernet Controller X540-AT2
Intel[R] Ethernet Controller X540-AT2 _2
Intel[R] Ethernet Controller X540-AT2 _3
Intel[R] Ethernet Controller X540-AT2 _4
ich das bekommen kann (aktiviert) Netzwerkkarten wie so:
Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2"
, die für Namen etwas wie folgt ausgibt:
Es gibt jedoch keine Eigenschaften zurückgegeben von beiden Aufruf, die direkt mit dem anderen übereinstimmen.
Der nächstgelegene ist der Name Win32_NetworkAdapter, die ähnlich an den Zähler Name ist, aber geändert wurde, ungültige Zeichen zu entfernen und ändern andere (* 1) und hat eine Art von Instancing los (* 2).
(* 1) = Nur beim Testen werden runde Klammern ("()") für die eckigen Klammern ("[]") und Escape-Hashes für Unterstriche getauscht.
(* 2) = Bei einer Maschine mit vier Netzwerkadapter,
Meine Frage ist: Wie kann ich direkt einen für die andere Karte, ohne auf meinem Mutmaßungen Text Ersatz angewiesen?
Edit:
Wenn Sie versuchen, dies auf einer VM zu testen, müssen Sie mindestens zwei Netzwerkkarten hinzuzufügen.
Hier ist der entsprechende Ausgang von einem Windows Server 2012 R2 VM läuft auf Hyper-V:
Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name
Name
----
Microsoft Hyper-V Network Adapter
Microsoft Hyper-V Network Adapter _2
Microsoft Hyper-V Network Adapter _3
Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select Name
Name
----
Microsoft Hyper-V Network Adapter #2
Microsoft Hyper-V Network Adapter
Microsoft Hyper-V Network Adapter #3
Bearbeiten wieder:
String Ersatz direkt aus ist, und nur auf nicht funktioniert Server, die NIC-Teaming verwenden.
Hier ist ein Beispiel von einem Server, der NIC-Teaming ist mit:
Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select name
Name
----
Intel(R) 82575EB Gigabit Network Connection
Intel(R) 82575EB Gigabit Network Connection
Intel(R) 82576 Gigabit Dual Port Network Connection
Intel(R) 82576 Gigabit Dual Port Network Connection
TEAM : PublicTeam
TEAM : PrivateTeam
Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name
Name
----
TEAM : PrivateTeam - Intel[R] 82575EB Gigabit Network Connection
TEAM : PublicTeam - Intel[R] 82575EB Gigabit Network Connection _2
TEAM : PrivateTeam - Intel[R] 82576 Gigabit Dual Port Network Connection
TEAM : PublicTeam - Intel[R] 82576 Gigabit Dual Port Network Connection _2
* Bearbeiten Sie die dritte/vierte: *
Noch eine andere Maschine, die nicht einmal die oben etwas zu erraten Namensgebung verwenden ist planen.
Dies ist auf Windows Server 2012 R2:
Get-WmiObject Win32_PerfRawData_Tcpip_NetworkInterface | select Name
Name
----
Intel[R] 82576 Gigabit Dual Port Network Connection
Intel[R] 82576 Gigabit Dual Port Network Connection _2
Intel[R] 82576 Gigabit Dual Port Network Connection _3
Intel[R] 82576 Gigabit Dual Port Network Connection _4
Get-WmiObject win32_networkadapter -filter "netconnectionstatus=2" | select Name
Name
----
Intel(R) 82576 Gigabit Dual Port Network Connection
Intel(R) 82576 Gigabit Dual Port Network Connection
Microsoft Network Adapter Multiplexor Driver
Microsoft Network Adapter Multiplexor Driver #2
Beachten Sie, dass in diesem Fall ist es das Microsoft Network Adapters ist, die tatsächlich IPs haben.
Obwohl in diesem Szenario die passenden Leistungsindikatoren auf dem Adapter perf Zähler tatsächlich funktionieren (Schnittstelle in anderen Situationen zuverlässiger scheint)
Edit 5:
Menschen halten machen Kommentare wie „Es ist ähnlich wie dieser andere Thread: "
Wie bereits in Bearbeitungen oben erläutert, gebe ich Beispiele, wo diese Art von Text fudging nicht funktioniert.
Ich denke nicht, können Sie 'Win32_PerfRawData_Tcpip_NetworkInterface' Karte zu' win32_networkadapter' weil es keinen gemeinsamen Schlüssel gibt ... aber du könntest dich mit 'Netzwerkadapterkonfiguration' in Verbindung setzen ... es hängt nur davon ab, welche Eigenschaften der NIC du sehen willst ... auch welche Version von Powershell benutzt du? – Kiran
Ich brauche den tatsächlichen Leistungsindikator-Namen - wie ich dorthin komme ist egal, solange ich es zurück zu '' win32_networkadapter'' (oder der '' win32_networkadapterconfiguration'') - ich benutze die Informationen von diesem Um zu ermitteln, welcher Perf-Zähler zu welchem Netzwerk auf dem System gehört (dmz, privat usw.), wird dieser Perf-Zähler-Instanzname an eine andere App übergeben. Ich sehe nicht, wie die Config-Tabelle hilft. –
Nicht sicher, welches Betriebssystem Sie verwenden, aber auf meinem Windows 10-Rechner und eine Win 2012 virtuelle Maschine geben beide Klassen übereinstimmende Namen, so dass ich Angst habe, kann ich das nicht testen .. – Kiran