PowerShell Ping mit Test-Connection
Das PowerShell Cmdlet Test-Connection ist eine sehr mächtige Funktion, um einen Ping gegen Hosts abzusetzen. Somit kann getestet werden, ob ein Server oder Computer, beziehungsweise ein Host erreichbar ist oder nicht. Hierfür gibt es sehr viele Parameter und Schalter.
Mit Test-Connection mehrere Hosts pingen
Test-Connection ist kein klassischer Ping in CMD, sondern ist sehr viel mächtiger. In diesem Beispiel möchte ich zeigen, wie man mit dem PowerShell Cmdlet mehrere Hosts nach einander pingen kann. Es müssen lediglich mehrere Hosts oder IP-Adressen nacheinander angegeben werden, getrennt mit einem Komma.
Test-Connection 10.41.7.9,10.41.1.11,10.41.4.232
Hier sieht man, dass vier Versuche in PowerShell abgesetzt werden, so wie man es aus der CMD (Kommandozeile) gewohnt ist. Trotzdem erhält man ausführlichere Informationen wie beispielsweise die Quelle und die IPv6 Adresse.
Ping in PowerShell mit dem Silent (Quiet) Modus
Mit dem PowerShell Cmdlet Test-Connection ist es möglich, einen Ping mit einem so genannten Quiet-Modus abzusetzen. Man verwendet hierzu den Parameter -Quiet
.
Test-Connection 10.41.7.9,10.41.1.11,10.41.4.232 -Quiet
Als Ergebnis Ereichbarkeitsabfrage mit PowerShell bekommt man im Quiet-Modus keine Details angezeigt, sondern lediglich welchen Status Test-Connection zurück liefert. Das Ergebnis ist True
, wenn der Ping erfolgreich war, oder False
wenn der Test nicht erfolgreich war.
Andere Quelle verwenden
Außerdem ist es mit Test-Connection möglich, den Ping von einer anderen Quelle absetzen zu lassen. Hier hilft der Parameter -Source <host>
und -Destination <host>
um dies mit PowerShell zu realisieren.
Test-Connection -Source domaincontroller1 -Destination domaincontroller2
Um diesen Parameter zu nutzen sind allerdings (je nach Quelle) erhöhte Rechte notwendig.
Alle Test-Connection Parameter für einen Ping per PowerShell
Natürlich hat das Commandlet Test-Connection in PowerShell noch viele weitere Parameter die verwendet werden können. Diese Funktionen sind verfügbar:
- Dauerping
- Protokoll
- Port
- TraceRoute
Dauerhaft oder Anzahl angeben
Um einen Durchgehenden, beziehungsweise dauerhaften Ping per PowerShell Script abzusetzen, wird der Parameter -Count
verwendet. Hier kann eine Anzahl in Zahlen angegeben werden, oder einfach der maximale Wert mit ([int32]::MaxValue)
.
Test-Connection 10.41.7.9 -Count ([int32]::MaxValue)
Abgebrochen kann solch eine Aufgabe in PowerShell übrigens mit der Tasten-Kombination [STRG] + [C]
.
Test-Connection auf Protokoll oder Port
Natürlich ist es auch möglich auf ein bestimmtes Protokoll, oder auch auf einen bestimmten Port pingen zu lassen. Test-Connection ist sehr mächtig und benötigt für einen Protokoll-Test (HTTP) den Parameter -CommonTCPPort
.
Test-NetConnection intranet.domain.de -CommonTCPPort HTTP
Aber nicht nur das Protokoll wie HTTP oder RDP ist möglich, sondern auch ein direkter Test auf einen Port. Um einen Port mit PowerShell zu überprüfen wird der Parameter -Port
verwendet.
Test-NetConnection intranet.domain.de -Port 443
TraceRoute absetzen
Der Befehl TraceRoute sollte Netzwerk-Administratoren bekannt sein. Auch dieser kann mit diesem PS Cmdlet abgesetzt werden. Hierzu wird der Parameter -TraceRoute
benötigt.
Test-NetConnection intranet.domain.de -TraceRoute
So einfach ist es auf einen bestimmten Host ein TraceRoute abzusetzen.