asharon
Goto Top

POWERSHELL: Wie kann ich herausfinden ob ein NetworkAdapter W-Lan oder Lan ist?

Hallo Leute,

ich versuche herauszufinden, ob ein NetworkAdapter in meinem System ein W-Lan oder ein LAN Adapter ist. Dazu brauche ich irgendwelche eindeutigen Eigenschaften der NetworkAdapter oder NetworkAdapterConfiguration Klasse, die die beiden unterscheidet. Leider habe ich bis dato nichts gefunden, was die Art des Adapters Systemunabhängig ausweist...

- Beide nutzen 802.3
- NetConnectionID Kann von PC zu PC unterschiedlich heissen.
usw.

Also im Prinzip muss ich eine Eigenschaft finden, die Eindeutig sagt "Du bist ein WLan" und die sich nicht von PC zu PC ändert und die auch nicht (einfach) vom Anwender geändert werden kann.

Hintergrund dieser Aktion ist, dass ich ein Script schreibe, dass die Metric einer Lan-Verbindung immer niedriger setzt als die Metric der W-Lan Verbindung, so dass egal wie die Reihenfolge der Adapter in den Advanced Settings ist, die Lan Verbindung immer priorisiert wird.


Danke im voraus

face-smile

Content-Key: 245305

Url: https://administrator.de/contentid/245305

Printed on: April 24, 2024 at 14:04 o'clock

Member: colinardo
colinardo Aug 01, 2014 updated at 09:42:35 (UTC)
Goto Top
Moin,
denke AdapterType ist die Eigenschaft die du suchst:
gwmi Win32_Networkadapter | ?{$_.NetEnabled -eq $true} | select Description,AdapterType
Ethernet 802.3 = LAN
Drahtlos 802.11 = WLAN

Grüße Uwe
Member: Asharon
Asharon Aug 01, 2014 at 10:05:20 (UTC)
Goto Top
Hi Uwe,

danke für die schnelle Antwort. Das habe ich anfangs auch gedacht, leider ist es bei meinem Testsystem nicht so. Beide Adapter nutzen 802.3.

Ich habe mal einen Vergleich der Adapter und AdapterConf gemacht und die einzigen Eigenschaften, die neben den offensichtlichen wie ID etc. nicht gleich waren, waren:

NetworkAdapter

Name
Caption
Description
GUID
Manufacturer
NetConnectionID
PNPDeviceID
ProductName
ServiceName
Speed


NetworkAdapterConfiguration

DHCPLeaseExpires
Description
DHCPLeaseObtained
DHCPServer
DNSDomain
DNSServerSearchOrder
IPAddress
Caption
DefaultIPGateway
InterfaceIndex
ServiceName
SettingID

Leider ist es so, dass viele dieser Einstellungen keine eindeutige Aussage über den Adapter treffen. Natürlich steht z.B.

A B
NetConnectionID LocalAreaConnection NetConnectionID WirelessNetworkConnection

Aber dieses kann man ja ändern und wer weiss ob nicht bei einem Rechner in Japan auf einmal andere Namen dort stehen. Ich glaube, dass es irgendwie über die ndis class gehen muss. Aber wie genau...
Member: colinardo
Solution colinardo Aug 01, 2014 updated at 10:55:49 (UTC)
Goto Top
Hiermit kannst du ziemlich zuverlässig bestimmten ob eine Verbindung eine WLAN-Verbindung ist:
gci 'HKLM:SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}' -rec | gp | ?{$_.MediaSubtype -eq 2} | ft MediaSubtype, Name, PnpInstanceID -AutoSize
Bei MediaSubtype = 2 ist es ein WLAN-Verbindung.

Grüße Uwe
Member: Asharon
Asharon Aug 01, 2014 at 10:55:41 (UTC)
Goto Top
Wow - über die Regirstry! *slaps forehead*... da muss man erstmal drauf kommen :D Genial! Vielen Dank face-smile