Test-NetConnection in der Powershell anwenden

10. März 2016

Mit dem Befehl „ping“ prüfen die Administratoren oftmals die Erreichbarkeit einzelner Systeme im Netzwerk. Dazu werden ICMP-Pakete (Internet Control Message Protocol) an die jeweiligen IP-Adressen gesendet. Folglich müssen die Firewalls der Systeme entsprechend konfiguriert sein, um ICMP-Anfragen weiterzuleiten. Bei aktuellen Serverbetriebssystemen von Microsoft verwirft die Windows-Firewall in den Standardeinstellungen ICMP-Anfragen, daher muss dies extra in den Firewall-Einstellungen abgeändert werden, um Ping einzusetzen.

In der Powershell ist „Ping“ zwar direkt als Programm-Aufruf verfügbar, allerdings wird im Hintergrund ein das Cmdlet „Test-NetConnection“ ausgeführt. Der Aufruf über „Ping“ ist daher nur ein Alias für das Powershell-Cmdlet. Während Ping (sowohl als CMD-Befehl als auch als Powershell-Alias) primär auf ICMP setzt, lassen sich mit „Test-NetConnection“ eine Vielzahl an TCP-Ports überprüfen. Dabei können die Administratoren etwa folgenden Befehl einsetzen:

Test-NetConnection Hostname

Für den Parameter „Hostname“ können die Administratoren auch IP-Adressen einsetzten. Als Ausgabe könnte etwa folgende Werte angezeigt werden:

RemoteAddress : 192.168.2.10
InterfaceAlias : Ethernet
SourceAddress : 192.168.2.199
PingSucceeded : True
PingReplyDetails (RTT) : 1 ms

Mit den entsprechenden Parametern können auch standardisierte Ports auf Erreichbarkeit hin gecheckt werden. Falls die Administratoren es auf die Erreichbarkeit von Port 80 (http) abgesehen haben, hilft etwa folgendes Cmdlet weiter:

Test-NetConnection FAH-I7 -CommonTCPPort http

Dabei könnte etwa folgende Informationen ausgegeben werden:

ComputerName : FAH-I7
RemoteAddress : 192.168.2.10
RemotePort : 80
InterfaceAlias : Ethernet
SourceAddress : 192.168.2.199
PingSucceeded : True
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : True

Um nicht von IANA (Internet Assigned Numbers Authority) standardisierte Ports zu testen, könnte beispielsweise folgender Befehl eingesetzt werden:

Mit dem Parameter „-Port“ lassen sich beliebige, <b>gültige Werte</b> (von 0 bis 65535) angeben. Hier könnte etwa folgende Ausgabe erscheinen:
[bash]
ComputerName : FAH-I7
RemoteAddress : 192.168.2.10
RemotePort : 3389
InterfaceAlias : Ethernet
SourceAddress : 192.168.2.199
PingSucceeded : True
PingReplyDetails (RTT) : 1 ms
TcpTestSucceeded : True

Zudem ist es möglich, mit dem Parameter „Quiet“ einen „stillen Test“ bezüglich der Erreichbarkeit durchzuführen, und als Ausgabe einen Boolesche Variable (true/false) zu erhalten:

Test-NetConnection FAH-I7 -InformationLevel Quiet

Weitere Informationen zu dem Cmdlets und Parametern sind auf der entsprechenden Technet-Seite verfügbar. Zudem sollte die aktuelle Powershell-version (PS 5.0) eingesetzt werden. Auf bestimmten, älteren Systemen (etwa Windows 7 mit PS 4.0) steht „Test-NetConnection“ nicht zur Verfügung, hier können die Systembetreuer auf „Test-Connection“ ausweichen. Dieses Cmdlet bietet einen ähnlichen Funktionsumfang.

Florian Huttenloher

Lesen Sie auch