Test-NetConnection in der Powershell anwenden
10. März 2016Mit 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.