Skip to main content

2.2 PowerShell-Netzwerkdiagnose

PowerShell stellt Netzwerkdaten als strukturierte Objekte bereit. Dadurch lassen sich Informationen gezielt filtern, sortieren, vergleichen und exportieren.

Die Cmdlets dieser Seite gehören zu Windows-Modulen wie NetAdapter, NetTCPIP, DnsClient und NetSecurity. Sie sind für die Netzwerkdiagnose unter Windows vorgesehen.


Kennzeichnungen

KennzeichnungBedeutung
[RO]Nur lesender Befehl; verändert keine Konfiguration
[TEST]Führt einen aktiven Netzwerk- oder Verbindungstest aus
[PRIV]Benötigt möglicherweise eine PowerShell mit Administratorrechten
[CHANGE]Verändert einen Zustand oder eine Konfiguration
[DISRUPT]Kann eine bestehende Verbindung oder einen Dienst unterbrechen
[FILE]Schreibt Informationen in eine Datei
[SENS]Ausgabe kann sensible System-, Netzwerk- oder Prozessdaten enthalten

Für die erste Diagnose möglichst mit [RO]-Befehlen beginnen. Veränderungen sollten erst erfolgen, wenn die Ursache ausreichend eingegrenzt und eine Rückfallmöglichkeit vorhanden ist.


1. PowerShell und benötigte Netzwerkmodule prüfen

Bevor ein Cmdlet verwendet wird, sollte geprüft werden, welche PowerShell-Version und welche Windows-Netzwerkmodule vorhanden sind.

AufgabePowerShell-Befehl
PowerShell-Version anzeigen[RO] $PSVersionTable
Betriebssysteminformationen anzeigen[RO] Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber
Netzwerkmodule suchen[RO] Get-Module -ListAvailable NetAdapter, NetTCPIP, DnsClient, NetSecurity
Befehle eines Moduls auflisten[RO] Get-Command -Module NetTCPIP
Hilfe zu einem Cmdlet anzeigen[RO] Get-Help Test-NetConnection -Full
Verwendungsbeispiele anzeigen[RO] Get-Help Resolve-DnsName -Examples
Syntax eines Cmdlets anzeigen[RO] Get-Command Get-NetAdapter -Syntax

Typische Fehler

Meldung oder BeobachtungMögliche Bedeutung
The term ... is not recognizedCmdlet oder Modul ist nicht vorhanden beziehungsweise nicht geladen
Access deniedAdministratorrechte oder zusätzliche Berechtigungen erforderlich
Keine AusgabeFilter ist möglicherweise zu eng oder es existiert kein passendes Objekt
Einzelne Eigenschaften fehlenUnterschiedliche Windows-, PowerShell- oder Modulversion

2. Netzwerkadapter und Verbindungsstatus prüfen

Get-NetAdapter zeigt physische und virtuelle Netzwerkadapter einschließlich Status, Geschwindigkeit, MAC-Adresse und Schnittstellenindex.

AufgabePowerShell-Befehl
Alle sichtbaren Netzwerkadapter anzeigen[RO] Get-NetAdapter
Auch ausgeblendete Adapter anzeigen[RO] Get-NetAdapter -IncludeHidden
Wichtige Eigenschaften auswählen[RO] Get-NetAdapter | Select-Object Name, InterfaceDescription, Status, LinkSpeed, MacAddress, ifIndex
Nur aktive Adapter anzeigen[RO] Get-NetAdapter | Where-Object Status -eq "Up"
Nicht aktive Adapter anzeigen[RO] Get-NetAdapter | Where-Object Status -ne "Up"
Adapter nach Status gruppieren[RO] Get-NetAdapter -IncludeHidden | Group-Object Status
Detailinformationen eines Adapters anzeigen[RO] Get-NetAdapter -Name "Ethernet" | Format-List *
Adapterstatistik anzeigen[RO] Get-NetAdapterStatistics
Fehler- und Verwerfungszähler anzeigen[RO] Get-NetAdapterStatistics | Select-Object Name, ReceivedPacketErrors, OutboundPacketErrors, ReceivedDiscardedPackets, OutboundDiscardedPackets
Treiberinformationen anzeigen[RO] Get-NetAdapter | Select-Object Name, DriverDescription, DriverVersion, DriverDate
Verbindungstyp und Netzwerkprofil anzeigen[RO] Get-NetConnectionProfile

Wichtige Eigenschaften

EigenschaftBedeutung
StatusBetriebszustand des Adapters
LinkSpeedAusgehandelte Verbindungsgeschwindigkeit
MacAddressHardwareadresse des Netzwerkadapters
ifIndexSchnittstellenindex für weitere Cmdlets
ReceivedPacketErrorsFehlerhaft empfangene Pakete
OutboundPacketErrorsFehler beim Senden
ReceivedDiscardedPacketsEmpfangene, aber verworfene Pakete
OutboundDiscardedPacketsZu sendende, aber verworfene Pakete

Hinweise zur Auswertung

  • Status = Up bedeutet nur, dass der Adapter aktiv und eine Verbindung erkannt wurde.
  • Ein aktiver Adapter bestätigt nicht automatisch eine funktionierende IP-Konfiguration.
  • Eine unerwartet niedrige LinkSpeed kann auf Kabel-, Port-, Treiber- oder Aushandlungsprobleme hinweisen.
  • Steigende Fehler- oder Verwerfungszähler können auf Treiberprobleme, Überlastung oder eine gestörte Verbindung hinweisen.
  • Virtuelle Adapter von VPN-, Hyper-V-, Container- oder Sicherheitssoftware müssen von physischen Adaptern unterschieden werden.

3. IP-Konfiguration vollständig erfassen

Get-NetIPConfiguration liefert eine zusammengefasste Ansicht der IP-Konfiguration. Für einzelne Eigenschaften stehen zusätzliche Cmdlets zur Verfügung.

AufgabePowerShell-Befehl
Aktive IP-Konfiguration anzeigen[RO] Get-NetIPConfiguration
Alle IP-Konfigurationen anzeigen[RO] Get-NetIPConfiguration -All
Ausführliche Ausgabe erzeugen[RO] Get-NetIPConfiguration -All | Format-List *
IPv4-Adressen anzeigen[RO] Get-NetIPAddress -AddressFamily IPv4
IPv6-Adressen anzeigen[RO] Get-NetIPAddress -AddressFamily IPv6
Verwendbare IPv4-Adressen anzeigen[RO] Get-NetIPAddress -AddressFamily IPv4 | Where-Object AddressState -eq "Preferred"
Loopback- und APIPA-Adressen ausblenden[RO] Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notlike "127.*" -and $_.IPAddress -notlike "169.254.*" }
IP-Schnittstellen anzeigen[RO] Get-NetIPInterface
IPv4-Schnittstellen nach Metrik sortieren[RO] Get-NetIPInterface -AddressFamily IPv4 | Sort-Object InterfaceMetric
Standardgateways anzeigen[RO] Get-NetRoute -DestinationPrefix "0.0.0.0/0"
DNS-Serveradressen anzeigen[RO] Get-DnsClientServerAddress
Nur IPv4-DNS-Server anzeigen[RO] Get-DnsClientServerAddress -AddressFamily IPv4
DHCP-Status anzeigen[RO] Get-NetIPInterface | Select-Object InterfaceAlias, AddressFamily, Dhcp, ConnectionState

Wichtige Prüfpunkte

PrüffeldErwartung beziehungsweise Fehlerhinweis
IP-AdresseMuss zum vorgesehenen Netzwerk passen
PräfixlängeMuss zur Netzmaske des Netzwerks passen
StandardgatewayMuss im Regelfall aus dem lokalen Netz erreichbar sein
DNS-ServerMuss erreichbar und für die benötigten Zonen zuständig sein
DHCPMuss zur vorgesehenen statischen oder dynamischen Konfiguration passen
InterfaceMetricNiedrigerer Wert wird bei konkurrierenden Schnittstellen bevorzugt
169.254.x.xKann auf eine fehlgeschlagene DHCP-Zuweisung hinweisen
Mehrere StandardroutenKönnen zu einem unerwarteten Verbindungsweg führen

Kompakte Bestandsaufnahme

Get-NetIPConfiguration -All |
    Select-Object InterfaceAlias,
                  InterfaceDescription,
                  NetProfile,
                  IPv4Address,
                  IPv6Address,
                  IPv4DefaultGateway,
                  DNSServer

4. Erreichbarkeit und TCP-Ports testen

Test-NetConnection kombiniert mehrere klassische Netzwerkprüfungen und liefert strukturierte Ergebnisse.

AufgabePowerShell-Befehl
Grundlegende Erreichbarkeit testen[TEST] Test-NetConnection 192.0.2.10
Detaillierte Ausgabe anzeigen[TEST] Test-NetConnection 192.0.2.10 -InformationLevel Detailed
Standardgateway testen[TEST] Test-NetConnection 192.0.2.1 -InformationLevel Detailed
Internet-IP testen[TEST] Test-NetConnection 1.1.1.1 -InformationLevel Detailed
HTTPS-Port testen[TEST] Test-NetConnection example.com -Port 443 -InformationLevel Detailed
SSH-Port testen[TEST] Test-NetConnection 192.0.2.10 -Port 22 -InformationLevel Detailed
RDP-Port testen[TEST] Test-NetConnection 192.0.2.10 -Port 3389 -InformationLevel Detailed
SMB-Port testen[TEST] Test-NetConnection 192.0.2.10 -Port 445 -InformationLevel Detailed
Routenverfolgung durchführen[TEST] Test-NetConnection example.com -TraceRoute
Nur boolesches Testergebnis ausgeben[TEST] Test-NetConnection example.com -Port 443 -InformationLevel Quiet

Die Adressen 192.0.2.0/24, 198.51.100.0/24 und 203.0.113.0/24 sind Dokumentationsnetze. Sie müssen in echten Prüfungen durch die tatsächlichen Zieladressen ersetzt werden.

Wichtige Ergebnisfelder

EigenschaftBedeutung
ComputerNameAngegebenes Ziel
RemoteAddressAufgelöste Zieladresse
NameResolutionResultsErgebnisse der Namensauflösung
SourceAddressVerwendete lokale Quelladresse
InterfaceAliasVerwendete Netzwerkschnittstelle
NetRouteAusgewählte Route
PingSucceededErgebnis des ICMP-Tests
TcpTestSucceededErgebnis des TCP-Verbindungsversuchs
RemotePortGetesteter Zielport

Interpretation

ErgebnisMögliche Bedeutung
PingSucceeded = False, TCP-Test erfolgreichICMP wird möglicherweise blockiert; der getestete Dienst ist trotzdem erreichbar
Namensauflösung schlägt fehl, IP-Test funktioniertDNS-Problem wahrscheinlich
Gateway erreichbar, externes Ziel nicht erreichbarRouting, Firewall, Provider oder Upstream-System prüfen
IP-Adresse erreichbar, TCP-Port nicht erreichbarDienst, Zielport oder Firewall prüfen
Falsches InterfaceAliasRoutingmetrik, VPN oder mehrere aktive Adapter prüfen
Falsche SourceAddressIP-Konfiguration oder Routenauswahl prüfen

5. DNS-Auflösung gezielt untersuchen

Resolve-DnsName erlaubt präzisere DNS-Abfragen als ein einfacher Verbindungstest.

AufgabePowerShell-Befehl
Namen mit Standardeinstellungen auflösen[TEST] Resolve-DnsName example.com
Nur DNS verwenden[TEST] Resolve-DnsName example.com -DnsOnly
IPv4-Adresse abfragen[TEST] Resolve-DnsName example.com -Type A -DnsOnly
IPv6-Adresse abfragen[TEST] Resolve-DnsName example.com -Type AAAA -DnsOnly
Mailserver abfragen[TEST] Resolve-DnsName example.com -Type MX -DnsOnly
Nameserver abfragen[TEST] Resolve-DnsName example.com -Type NS -DnsOnly
TXT-Einträge abfragen[TEST] Resolve-DnsName example.com -Type TXT -DnsOnly
Reverse-DNS-Abfrage durchführen[TEST] Resolve-DnsName 192.0.2.10 -Type PTR -DnsOnly
Bestimmten DNS-Server verwenden[TEST] Resolve-DnsName example.com -Server 192.0.2.53 -DnsOnly
Nur lokalen DNS-Cache abfragen[RO] Resolve-DnsName example.com -CacheOnly
DNS-Cache anzeigen[RO] Get-DnsClientCache
Cache nach einem Namen durchsuchen[RO] Get-DnsClientCache | Where-Object Entry -like "*example.com*"
Konfigurierte DNS-Server anzeigen[RO] Get-DnsClientServerAddress
DNS-Clientkonfiguration anzeigen[RO] Get-DnsClient

DNS-Vergleichstest

Resolve-DnsName example.com -DnsOnly
Resolve-DnsName example.com -Server 192.0.2.53 -DnsOnly
Resolve-DnsName example.com -Server 1.1.1.1 -DnsOnly

Auswertung

BeobachtungMögliche Ursache
Interner DNS-Server antwortet nichtDNS-Dienst, Firewall, Routing oder Erreichbarkeit prüfen
Externer DNS-Server funktioniert, interner nichtProblem wahrscheinlich beim internen Resolver
Interne Namen funktionieren extern nichtNormal, wenn die Zone nur intern vorhanden ist
Unterschiedliche Antworten verschiedener ResolverSplit-DNS, Cache, Replikationsverzug oder unterschiedliche Zonen
NXDOMAINName existiert aus Sicht des verwendeten DNS-Servers nicht
SERVFAILDNS-Server konnte die Anfrage nicht erfolgreich verarbeiten
TimeoutDNS-Server nicht erreichbar, blockiert oder zu langsam
Auflösung funktioniert nur aus dem CacheAktuelle DNS-Kommunikation möglicherweise gestört

Öffentliche DNS-Server dürfen nicht unüberlegt zum Test interner Namen verwendet werden. Interne Hostnamen, Domänennamen und Strukturen können sensible Informationen darstellen.


6. Routing und ausgewählten Netzwerkweg prüfen
AufgabePowerShell-Befehl
Gesamte Routingtabelle anzeigen[RO] Get-NetRoute
IPv4-Routen anzeigen[RO] Get-NetRoute -AddressFamily IPv4
IPv6-Routen anzeigen[RO] Get-NetRoute -AddressFamily IPv6
Standardroute anzeigen[RO] Get-NetRoute -DestinationPrefix "0.0.0.0/0"
Routen nach Metrik sortieren[RO] Get-NetRoute -AddressFamily IPv4 | Sort-Object RouteMetric
Route einer Schnittstelle anzeigen[RO] Get-NetRoute -InterfaceAlias "Ethernet"
Wahrscheinlich verwendete Route bestimmen[RO] Find-NetRoute -RemoteIPAddress 1.1.1.1
Schnittstellenmetriken anzeigen[RO] Get-NetIPInterface -AddressFamily IPv4 | Sort-Object InterfaceMetric
Routenverfolgung durchführen[TEST] Test-NetConnection example.com -TraceRoute

Wichtige Eigenschaften

EigenschaftBedeutung
DestinationPrefixZielnetz der Route
NextHopNächster Router beziehungsweise Gateway
InterfaceAliasVerwendete Netzwerkschnittstelle
RouteMetricMetrik der einzelnen Route
InterfaceMetricMetrik der Schnittstelle
PublishGibt an, ob die Route veröffentlicht wird
ProtocolHerkunft beziehungsweise Routingprotokoll der Route

Typische Fehlerbilder

  • Mehrere Standardrouten konkurrieren miteinander.
  • Ein VPN installiert eine bevorzugte Route.
  • Eine Route verwendet den falschen Adapter.
  • Das Standardgateway befindet sich nicht im erwarteten lokalen Netz.
  • Eine spezifischere Route überschreibt die allgemeine Standardroute.
  • Eine niedrige Metrik führt zu einem unerwarteten Netzwerkweg.

7. ARP- und IPv6-Nachbartabelle prüfen

Get-NetNeighbor zeigt bekannte Nachbarn auf direkt angeschlossenen Netzen. Bei IPv4 entspricht dies funktional weitgehend der ARP-Tabelle; bei IPv6 werden Einträge des Neighbor Discovery Protocols angezeigt.

AufgabePowerShell-Befehl
Gesamte Nachbartabelle anzeigen[RO] Get-NetNeighbor
IPv4-Nachbarn anzeigen[RO] Get-NetNeighbor -AddressFamily IPv4
IPv6-Nachbarn anzeigen[RO] Get-NetNeighbor -AddressFamily IPv6
Nachbarn eines Adapters anzeigen[RO] Get-NetNeighbor -InterfaceAlias "Ethernet"
Einträge nach Zustand sortieren[RO] Get-NetNeighbor | Sort-Object State, InterfaceAlias
Bestimmte IP-Adresse suchen[RO] Get-NetNeighbor -IPAddress 192.0.2.10
Erreichbare Einträge anzeigen[RO] Get-NetNeighbor | Where-Object State -eq "Reachable"
Unvollständige Einträge anzeigen[RO] Get-NetNeighbor | Where-Object State -eq "Incomplete"

Wichtige Zustände

ZustandBedeutung
ReachableNachbar wurde kürzlich erfolgreich erreicht
StaleEintrag ist vorhanden, wurde aber länger nicht bestätigt
DelayErreichbarkeitsprüfung wird verzögert
ProbeAktive Erreichbarkeitsprüfung läuft
IncompleteAdressauflösung konnte noch nicht abgeschlossen werden
PermanentStatischer beziehungsweise dauerhafter Eintrag

Fehlerhinweise

  • Incomplete kann auf ein nicht erreichbares Ziel, falsches VLAN, Layer-2-Probleme oder eine falsche IP-Konfiguration hinweisen.
  • Wechselnde MAC-Adressen zu derselben IP-Adresse können auf doppelte IP-Adressen, Hochverfügbarkeit oder Sicherheitsprobleme hinweisen.
  • Kein Eintrag bedeutet nicht automatisch einen Fehler. Möglicherweise wurde das Ziel noch nicht angesprochen oder befindet sich nicht im lokalen Netz.

8. TCP-Verbindungen, offene Ports und Prozesse untersuchen

Get-NetTCPConnection zeigt lokale TCP-Endpunkte und bestehende TCP-Verbindungen.

AufgabePowerShell-Befehl
Alle TCP-Verbindungen anzeigen[RO] Get-NetTCPConnection
Lauschende TCP-Ports anzeigen[RO] Get-NetTCPConnection -State Listen
Bestehende Verbindungen anzeigen[RO] Get-NetTCPConnection -State Established
Verbindungen zu einem Zielport suchen[RO] Get-NetTCPConnection -RemotePort 443
Lokalen Port untersuchen[RO] Get-NetTCPConnection -LocalPort 443
Nach Zustand gruppieren[RO] Get-NetTCPConnection | Group-Object State
Verbindungen sortiert anzeigen[RO] Get-NetTCPConnection | Sort-Object State, LocalPort
UDP-Endpunkte anzeigen[RO] Get-NetUDPEndpoint
Prozess über PID ermitteln[RO] Get-Process -Id 1234

Lauschende Ports mit Prozessnamen anzeigen

Get-NetTCPConnection -State Listen |
    Select-Object LocalAddress,
                  LocalPort,
                  OwningProcess,
                  @{
                      Name = "ProcessName"
                      Expression = {
                          (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName
                      }
                  } |
    Sort-Object LocalPort

Bestehende Verbindungen mit Prozessnamen anzeigen

Get-NetTCPConnection -State Established |
    Select-Object LocalAddress,
                  LocalPort,
                  RemoteAddress,
                  RemotePort,
                  OwningProcess,
                  @{
                      Name = "ProcessName"
                      Expression = {
                          (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName
                      }
                  }

Interpretation

BeobachtungMögliche Bedeutung
Erwarteter Port fehlt im Zustand ListenDienst läuft nicht, lauscht auf anderem Port oder konnte den Port nicht binden
Port lauscht nur auf 127.0.0.1Dienst ist nur lokal erreichbar
Port lauscht auf 0.0.0.0Dienst lauscht grundsätzlich auf allen IPv4-Schnittstellen
Port lauscht auf ::Dienst lauscht grundsätzlich auf IPv6 und möglicherweise abhängig von der Anwendung auch auf IPv4
Viele Verbindungen im Zustand SYN_SENTZiel, Route, Dienst oder Firewall antwortet möglicherweise nicht
Viele Verbindungen im Zustand TIME_WAITKann bei vielen kurzlebigen TCP-Verbindungen normal sein
Unerwarteter Prozess lauscht auf einem PortDienstzuordnung und Sicherheitslage prüfen

Eine Verbindung im Zustand Listen bestätigt nur, dass lokal ein Prozess auf dem Port wartet. Sie bestätigt nicht, dass der Port aus einem anderen Netz erreichbar ist.


9. Windows-Firewall diagnostizieren

Die Firewall sollte zunächst nur ausgelesen werden. Ein vollständiges Abschalten der Firewall ist kein geeigneter erster Diagnoseschritt.

AufgabePowerShell-Befehl
Firewallprofile anzeigen[RO] Get-NetFirewallProfile
Status der Profile kompakt anzeigen[RO] Get-NetFirewallProfile | Select-Object Name, Enabled, DefaultInboundAction, DefaultOutboundAction
Aktivierte Regeln anzeigen[RO] Get-NetFirewallRule -Enabled True
Aktivierte Blockierungsregeln anzeigen[RO] Get-NetFirewallRule -Enabled True -Action Block
Eingehende Regeln anzeigen[RO] Get-NetFirewallRule -Direction Inbound
Regel anhand des Anzeigenamens suchen[RO] Get-NetFirewallRule -DisplayName "*Remote Desktop*"
Portfilter anzeigen[RO] Get-NetFirewallPortFilter
Regeln für lokalen Port 443 suchen[RO] Get-NetFirewallPortFilter | Where-Object LocalPort -eq 443 | Get-NetFirewallRule
Regeln für TCP-Port 445 suchen[RO] Get-NetFirewallPortFilter | Where-Object { $_.Protocol -eq "TCP" -and $_.LocalPort -eq 445 } | Get-NetFirewallRule
Adressfilter einer Regel anzeigen[RO] Get-NetFirewallRule -DisplayName "REGELNAME" | Get-NetFirewallAddressFilter
Portfilter einer Regel anzeigen[RO] Get-NetFirewallRule -DisplayName "REGELNAME" | Get-NetFirewallPortFilter
Anwendungsfilter einer Regel anzeigen[RO] Get-NetFirewallRule -DisplayName "REGELNAME" | Get-NetFirewallApplicationFilter

Warum zeigt Get-NetFirewallRule nicht alle Ports und Adressen direkt an?

Windows speichert Bedingungen wie Ports, Programme und Adressen in zugeordneten Filterobjekten. Deshalb werden für eine vollständige Analyse zusätzlich folgende Cmdlets verwendet:

  • Get-NetFirewallPortFilter
  • Get-NetFirewallAddressFilter
  • Get-NetFirewallApplicationFilter
  • Get-NetFirewallServiceFilter
  • Get-NetFirewallInterfaceFilter

Sinnvolle Prüfreihenfolge

  1. Aktives Netzwerkprofil mit Get-NetConnectionProfile feststellen.
  2. Firewallstatus des Profils mit Get-NetFirewallProfile prüfen.
  3. Prüfen, ob der Dienst lokal auf dem erwarteten Port lauscht.
  4. Passende eingehende oder ausgehende Regel suchen.
  5. Port-, Adress-, Programm- und Profilfilter der Regel prüfen.
  6. Verbindung von einem autorisierten Testsystem aus testen.

Die Firewall nicht pauschal deaktivieren. Dadurch verändert sich die Sicherheitslage und das Testergebnis bildet die ursprüngliche Konfiguration nicht mehr korrekt ab.


10. Diagnoseausgaben filtern, vergleichen und exportieren

PowerShell-Ausgaben bestehen aus Objekten. Die Filterung sollte deshalb möglichst vor der Formatierung erfolgen.

AufgabePowerShell-Befehl
Bestimmte Eigenschaften auswählen[RO] Get-NetAdapter | Select-Object Name, Status, LinkSpeed
Objekte filtern[RO] Get-NetAdapter | Where-Object Status -ne "Up"
Ergebnisse sortieren[RO] Get-NetRoute | Sort-Object RouteMetric
Ergebnisse gruppieren[RO] Get-NetTCPConnection | Group-Object State
Anzahl ermitteln[RO] (Get-NetTCPConnection -State Established).Count
Tabellenansicht erzeugen[RO] Get-NetAdapter | Format-Table -AutoSize
Detailansicht erzeugen[RO] Get-NetIPConfiguration | Format-List *
CSV-Datei exportieren[RO][FILE][SENS] Get-NetTCPConnection | Export-Csv -Path ".\tcp-connections.csv" -NoTypeInformation -Encoding UTF8
Objekte vollständig speichern[RO][FILE][SENS] Get-NetIPConfiguration -All | Export-Clixml -Path ".\ip-configuration.xml"
Textprotokoll erzeugen[RO][FILE][SENS] Get-NetIPConfiguration -All | Format-List * | Out-File ".\ip-configuration.txt" -Encoding utf8

Zwei Messzeitpunkte vergleichen

$Vorher = Get-NetTCPConnection
Start-Sleep -Seconds 10
$Nachher = Get-NetTCPConnection

Compare-Object $Vorher $Nachher -Property State, LocalAddress, LocalPort, RemoteAddress, RemotePort

Hinweise

  • Where-Object und Select-Object verarbeiten Objekte.
  • Format-Table und Format-List sind für die Darstellung am Ende einer Pipeline gedacht.
  • Für eine spätere Weiterverarbeitung sind Export-Csv oder Export-Clixml geeigneter als formatierter Text.
  • Exportdateien können IP-Adressen, DNS-Namen, Prozesskennungen, Verbindungen und interne Netzstrukturen enthalten.
  • Diagnoseexporte müssen entsprechend den betrieblichen Datenschutz- und Sicherheitsvorgaben behandelt werden.

11. Eingreifende Befehle nur nach der Diagnose verwenden

Die folgenden Befehle verändern einen Zustand und gehören nicht zur rein lesenden Bestandsaufnahme.

MaßnahmePowerShell-BefehlAuswirkung
DNS-Clientcache leeren[CHANGE][PRIV] Clear-DnsClientCacheLokal gespeicherte DNS-Antworten werden entfernt
Netzwerkadapter neu starten[CHANGE][PRIV][DISRUPT] Restart-NetAdapter -Name "Ethernet"Adapter wird deaktiviert und erneut aktiviert
DHCP-Lease erneuern[CHANGE][PRIV][DISRUPT] ipconfig /release; ipconfig /renewVorhandene DHCP-Adresse wird zunächst freigegeben
DNS-Registrierung anfordern[CHANGE][PRIV] Register-DnsClientDynamische DNS-Registrierung wird angestoßen

Vor einem Eingriff prüfen

  • Besteht eine lokale oder entfernte Administrationsverbindung?
  • Wird die eigene Remoteverbindung durch den Eingriff getrennt?
  • Ist die aktuelle Konfiguration dokumentiert?
  • Ist die Ursache ausreichend eingegrenzt?
  • Gibt es einen Rückfallweg oder lokalen Zugriff?
  • Sind Auswirkungen auf Benutzer, Dienste, VPN-Verbindungen oder Cluster bekannt?
  • Ist ein Wartungsfenster beziehungsweise eine Freigabe erforderlich?

Restart-NetAdapter kann eine Remoteverbindung sofort unterbrechen. Der Befehl darf auf entfernten Produktivsystemen nur mit abgesichertem Rückfallweg verwendet werden.


12. Praktische PowerShell-Diagnosereihenfolge

Schritt 1 – Adapter prüfen

Get-NetAdapter |
    Select-Object Name, Status, LinkSpeed, MacAddress, ifIndex

Schritt 2 – IP-Konfiguration prüfen

Get-NetIPConfiguration -All

Schritt 3 – Standardroute und DNS-Server prüfen

Get-NetRoute -DestinationPrefix "0.0.0.0/0"
Get-DnsClientServerAddress

Schritt 4 – Lokales Standardgateway testen

Test-NetConnection 192.0.2.1 -InformationLevel Detailed

Schritt 5 – Externe IP-Adresse testen

Test-NetConnection 1.1.1.1 -InformationLevel Detailed

Schritt 6 – DNS-Auflösung testen

Resolve-DnsName example.com -DnsOnly

Schritt 7 – Zielport testen

Test-NetConnection example.com -Port 443 -InformationLevel Detailed

Schritt 8 – Route zum Ziel prüfen

Find-NetRoute -RemoteIPAddress 1.1.1.1
Test-NetConnection example.com -TraceRoute

Schritt 9 – Lokale Ports und Prozesse prüfen

Get-NetTCPConnection -State Listen |
    Sort-Object LocalPort

Schritt 10 – Firewallstatus prüfen

Get-NetFirewallProfile
Get-NetFirewallRule -Enabled True |
    Select-Object DisplayName, Direction, Action, Profile

Diagnoselogik

ErgebnisNächster Schwerpunkt
Adapter nicht aktivKabel, WLAN, Adapter, Treiber oder Port prüfen
Keine passende IP-AdresseDHCP oder statische IP-Konfiguration prüfen
Gateway nicht erreichbarLokales Netz, VLAN, WLAN, Switch oder Gateway prüfen
Externe IP erreichbar, DNS-Name nichtDNS-Konfiguration und Resolver prüfen
Ziel-IP erreichbar, Zielport nichtDienst, Portbindung und Firewall prüfen
Falscher Adapter oder falsche QuelladresseRouting, Metrik, VPN und mehrere Adapter prüfen
Dienst lauscht lokal, ist extern aber nicht erreichbarFirewall, NAT, Routing und Dienstbindung prüfen

Kurzreferenz

DiagnosezielBefehl
Adapterstatus[RO] Get-NetAdapter
Adapterstatistik[RO] Get-NetAdapterStatistics
IP-Gesamtübersicht[RO] Get-NetIPConfiguration -All
IP-Adressen[RO] Get-NetIPAddress
Schnittstellen und Metriken[RO] Get-NetIPInterface
Netzwerkprofil[RO] Get-NetConnectionProfile
DNS-Server[RO] Get-DnsClientServerAddress
DNS-Auflösung[TEST] Resolve-DnsName example.com -DnsOnly
DNS-Cache[RO] Get-DnsClientCache
Verbindungstest[TEST] Test-NetConnection example.com
TCP-Porttest[TEST] Test-NetConnection example.com -Port 443
Routenverfolgung[TEST] Test-NetConnection example.com -TraceRoute
Routingtabelle[RO] Get-NetRoute
Route zu einem Ziel[RO] Find-NetRoute -RemoteIPAddress 1.1.1.1
Nachbartabelle[RO] Get-NetNeighbor
TCP-Verbindungen[RO] Get-NetTCPConnection
UDP-Endpunkte[RO] Get-NetUDPEndpoint
Firewallprofile[RO] Get-NetFirewallProfile
Firewallregeln[RO] Get-NetFirewallRule

Merksatz

PowerShell-Netzwerkdiagnose bedeutet nicht, möglichst viele Befehle auszuführen. Entscheidend ist, die Ergebnisse als zusammenhängende Beweiskette auszuwerten: Adapter → IP-Konfiguration → Gateway → Route → DNS → Zielport → lokaler Dienst → Firewall.


Quellen