Bei einer Fehleranalyse musste ich die aktuelle Konfiguration einer Netzwerkkarte unter Windows direkt per Kommandozeile auslesen. Gerade bei Netzwerkproblemen liefert die CLI oft deutlich detailliertere Informationen als die grafische Oberfläche – und eignet sich außerdem perfekt für Remote-Analysen, Dokumentationen oder schnelle Vergleiche von Systemzuständen.
Gerade bei Remote-Analysen oder komplexeren Netzwerkproblemen ist die PowerShell oft deutlich praktischer als die grafische Oberfläche. In diesem Beitrag zeige ich, wie sich Get-NetAdapter sinnvoll einsetzen lässt und welche Informationen bei der Fehlersuche besonders hilfreich sind.
Abfrage der Netzwerkadapter
Zunächst beziehen wir die Interface-Informationen der vorhandenen Netzwerkadapter. Besonders interessant ist dabei der Interface-Index, da dieser von vielen weiteren PowerShell-Netzwerkbefehlen zur eindeutigen Identifikation des Adapters verwendet wird. In dem konkreten Fall haben wir jedoch mit dem Interface-Namen gearbeitet.
PS C:\Windows\System32> Get-NetAdapter
Name InterfaceDescription ifIndex Status MacAddress LinkSpeed
---- -------------------- ------- ------ ---------- ---------
WLAN Intel(R) Wi-Fi 6 AX203 11 Up XX-XX-XX-A5-A8-XX 1.2 Gbps
Bluetooth-Netzwerkverb... Bluetooth Device (Personal Area Netw... 10 Disconnected XX-XX-XX-XX-XX-XX 3 Mbps
Ethernet Realtek PCIe GbE Family Controller 3 Disconnected XX-XX-XX-XX-XX-X 0 bps
Abfrage-Skript mit Variable
Das Interface, welches wir uns genauer anschauen möchten, trägt in diesem Beispiel den Namen WLAN. Daher setzen wir den entsprechenden Interface-Namen in der PowerShell-Variable ein und führen anschließend die folgenden Befehle aus. Damit lassen sich unter anderem Adapterstatus, IP-Konfiguration, DNS-Server, erweiterte Adaptereigenschaften sowie aktive Netzwerkbindungen auslesen.
$if = "WLAN"
Get-NetAdapter -Name $if
Get-NetIPConfiguration -InterfaceAlias $if
Get-NetIPAddress -InterfaceAlias $if
Get-NetAdapterAdvancedProperty -Name $if
Get-DnsClientServerAddress -InterfaceAlias $if
Get-NetAdapterBinding -Name $if
Get-NetConnectionProfile -InterfaceAlias $if
Get-NetAdapterStatistics -Name $if
Get-NetIPInterface -InterfaceAlias $if
Get-NetRoute -InterfaceAlias $if
Get-NetNeighbor -InterfaceAlias $if
Remove-Variable if
Durch die Verwendung einer gemeinsamen Interface-Variable lassen sich die Befehle außerdem einfach wiederverwenden und flexibel auf andere Netzwerkadapter anwenden.
Beschreibung der Cmdlets
Die folgende Tabelle beschreibt nochmals, welche Informationen die jeweiligen Befehle liefern. Dabei überschneiden sich einige Ausgaben bewusst, da bestimmte Informationen von mehreren Cmdlets bereitgestellt werden oder unterschiedlich detailliert dargestellt sind.
| Befehl | Beschreibung |
|---|---|
Get-NetIPConfiguration | Zeigt die vollständige IP-Konfiguration des Interfaces an, inklusive IPv4-/IPv6-Adresse, Standardgateway und DNS-Server. |
Get-NetAdapter | Liefert allgemeine Informationen zum Netzwerkadapter, beispielsweise Name, Status, MAC-Adresse, Link-Geschwindigkeit und Interface-Index. |
Get-NetAdapterAdvancedProperty | Zeigt erweiterte Eigenschaften des Netzwerkadapters an, beispielsweise VLAN-Konfigurationen, Offloading-Optionen oder Energieeinstellungen. |
Get-NetIPAddress | Listet ausschließlich die konfigurierten IP-Adressen des Interfaces auf. Hilfreich zur schnellen Prüfung von IPv4-/IPv6-Konfigurationen. |
Get-DnsClientServerAddress | Liefert die konfigurierten DNS-Server des Interfaces für IPv4 und IPv6. |
Get-NetAdapterBinding | Zeigt, welche Netzwerkprotokolle und Dienste an den Adapter gebunden sind, beispielsweise IPv4, IPv6 oder LLDP. |
Get-NetConnectionProfile | Zeigt das aktuelle Netzwerkprofil des Interfaces an, beispielsweise Öffentlich, Privat oder Domäne. |
Get-NetAdapterStatistics | Liefert Statistiken zum Netzwerkadapter, etwa gesendete/empfangene Pakete, Fehler oder verworfene Frames. |
Get-NetIPInterface | Zeigt Interface-spezifische IP-Einstellungen wie MTU, Interface-Metrik oder DHCP-Status an. |
Get-NetRoute | Listet die Routing-Einträge des Interfaces auf und zeigt, über welche Gateways Ziele erreicht werden. |
Get-NetNeighbor | Zeigt den Neighbor-/ARP-Cache des Interfaces an, also bekannte IP-zu-MAC-Adresszuordnungen im lokalen Netzwerk. |
Viele der gezeigten Befehle liefern bereits ohne zusätzliche Tools wertvolle Informationen für die Fehlersuche und ermöglichen eine schnelle erste Einschätzung der Netzwerksituation.