Eine Verbindung in PowerShell mit Test-NetConnection testen

Inhalt

In diesem Tutorial werde ich Ihnen das PowerShell-Cmdlet Test-NetConnection vorstellen, mit dem Sie Netzwerkdiagnosen durchführen können.

Dieser Befehl kann die folgenden Dienstprogramme ersetzen:

  • Ping
  • Telnet
  • Traceroute (tracert)

Mit nur einem einzigen PowerShell-Cmdlet können Sie alles erledigen!

In diesem Tutorial werden wir Folgendes behandeln:

  • So führen Sie einen Ping in PowerShell durch
  • Wie führt man in PowerShell einen „telnet“-Befehl aus, um einen Port (TCP) zu testen?
  • So erstellen Sie eine Routenverfolgung in PowerShell

Bevor es losgeht: Das Cmdlet Test-NetConnection akzeptiert einen ersten Parameter -ComputerName, der nicht unbedingt angegeben werden muss.

Einen Ping in PowerShell mit „Test-NetConnection“ ausführen

Wir beginnen mit einer einfachen Anwendung, nämlich einem Ping.

Test-NetConnection google.fr

Wie auf dem Screenshot zu sehen ist, gibt der Befehl keine Informationen zurück:

  • Die Remote-IP-Adresse wird aufgelöst, wenn man einen Domainnamen testet
  • Die Schnittstelle und die Quell-IP-Adresse
  • Das Ergebnis des Ping-Befehls
  • Die Latenzzeit

Das Tolle an PowerShell ist nun, dass man Skripte erstellen kann. Um dies zu veranschaulichen, sehen Sie sich hier ein einfaches Skript an, mit dem wir einen Ping testen können.

<#
	Script for TEST Connection
#>

param(
	$RemoteHost = "google.fr"
)

$ResultTest = Test-NetConnection -ComputerName $RemoteHost


if( $ResultTest.PingSucceeded ){
	Write-Output "Test OK for $RemoteHost"
}else{

	Write-Output "/!\ Test KO for $RemoteHost"
}

Um das Ergebnis des Befehls abzurufen, muss „PingSucceeded“ geprüft werden.

Hier ist das Skript und das Ergebnis des Skripts für einen Host, der antwortet, und einen, der nicht antwortet.

Wenn Sie mehrere Ping-Befehle ausführen oder einen kontinuierlichen Ping durchführen möchten, müssen Sie das Cmdlet Test-Connection verwenden.

Um 100 Pings auszuführen

Test-Connection google.fr -Count 100

Für einen kontinuierlichen Ping:

Test-Connection google.fr -Count ([int32]::MaxValue)

Einen Port in PowerShell mit „Test-NetConnection“ testen

Nun schauen wir uns an, wie man einen Port in PowerShell testet, so wie man es mit telnet tun würde.

Der Vorteil der Verwendung von Test-NetConnection gegenüber Telnet besteht darin, dass kein Telnet-Client installiert werden muss.

Um einen Port zu testen, muss man den Parameter -Port und die entsprechende Portnummer angeben.

Das ergibt:

Test-NetConnection rdr-it.com -Port 443

Hier habe ich Port 443 (HTTPS) des Webservers getestet. Um das Testergebnis zu erhalten, muss man den Wert von TcpTestSucceeded überprüfen.

Sollte dies fehlschlagen, testet das Cmdlet den Host mit einem Ping.

Diese Rückmeldung lässt sich auch in einem PowerShell-Skript nutzen; im Gegensatz zu „ping“ muss dabei das Ergebnis von TcpTestSucceeded ausgewertet werden.

Die Verbindung mit Test-NetConnection testen

Zum Abschluss dieses Tutorials werden wir uns ansehen, wie man das Routing mit Test-NetConnection in PowerShell testet.

Wenn Sie mehrere verschiedene Routen konfigurieren müssen, können Sie zunächst den Parameter -DiagnoseRouting verwenden, der analysiert, welche Route (Gateway) für den Zugriff auf den Remote-Server verwendet wird.

Der zweite Parameter, den wir uns ansehen werden, ist traceroute, mit dem man eine Funktion ähnlich wie bei tracert nutzen und alle verwendeten Router anzeigen kann.


Sie wissen nun, wie Sie mit PowerShell mithilfe des Cmdlets Test-NetConnection verschiedene Netzwerktests durchführen können.

Romain Drouche

Romain Drouche

Systemarchitekt | MCSE: Core Infrastructure

Experte für IT-Infrastrukturen mit mehr als 15 Jahren Praxiserfahrung. Derzeit als Projektleiter für Systeme und Netzwerke sowie als Verantwortlicher für Informationssicherheit (SSI) tätig, setze ich meine Expertise für die Zuverlässigkeit und Sicherheit technologischer Umgebungen ein.

GHinM▶