Überblick
Das Prüfen der Netzwerkverbindung ist oft eine tägliche Arbeit des Administrators. Nicht immer funktioniert alles einwandfrei und einer der ersten Befehle, den man bei Netzwerkproblemen verwendet, ist der Ping Befehl.
In jüngster Zeit hält aber die Windows PowerShell einen großen Einzug in die Windows Welt, sodass man sich langfristig mit dieser auseinandersetzen muss. Im Bereich der Netzwerküberprüfung habe ich mir mal das Cmdlet Test-Connenction genauer angesehen.
In diesem Beitrag möchte ich euch zeigen, wie man damit arbeitet. Das Cmdlet bietet vor allem auch wesentlich mehr Möglichkeiten, als der herkömmliche cmd Befehl ping.
Ein einfacher Aufruf mit der Ping Alternative: Test-Connection
Natürlich kann man auch unter der Windows PowerShell den cmd Befehl Ping verwenden. Prinzipiell liefert dieser auch ein Ergebnis. Da es sich aber bei der PowerShell um eine objektorientiert Skriptsprache handelt, ist es gerade in Scripten sinnvoller Test-Connection zu verwenden.
Es wird damit nämlich ein Win32_PingStatus-Objekt zurückgegeben. Dadurch kann man das Ergebnis wesentlich genauer analysieren. Damit übrigens ein PC auch auf einen Ping antworten kann, muss dieser ICMP Pakete durchlassen. Ob der Rechner diese durchlässt, hängt davon ab, welchen Netzwerkstandort er eingestellt hat. Sollte man die Regeln manuell ändern wollen, dann geht das über die Windows Firewall.
Ein einfacher Aufruf sieht wie folgt aus:
Test-Connection Server-Name oder IP
Pingen von einem anderen Quell Rechner
Wie Eingangs bereits erwähnt, bietet die Windows PowerShell mit dem Cmdlet Test-Connection viel mehr Möglichkeiten, als ein einfacher Ping Befehl. So gibt es z. B. die Möglichkeit, einen Ping von einem anderen Quell-Computer aus auszuführen.
Test-Connection -Source PC1 -ComputerName DS412
In diesem Beispiel würde man von dem Computer PC1 einen Ping an die Synology Diskstation* mit dem Namen DS412 senden. Übrigens kann man durch Kommas getrennt auch mehrere Quell – und Zieladressen angeben.
Möchte man sich bei einer Ping Anfrage über Test-Connection sämtliche Attribute und Werte ausgeben lassen, so ist es sinnvoll, wenn man mittels der Windows PowerShell Pipe das Ergebnis weiterverarbeitet und in einer formatierten Liste ausgeben lässt. Für die Liste dient das Cmdlet Format-List.
Test-Connection DS412 | Format-List

Wenn man sich die obige Ausgabe ansieht, so erkennt man schnell, wie viele verschiedene Werte der Befehl liefert. Genau daraus kann man spezielle Scripte erstellen, welche bestimmte Anforderungen erfüllen.
Vorstellbar wäre hier u. a., dass man die Pings auf dessen Zeiten prüft (ResponseTime). Genau das möchte ich euch im nächsten Abschnitt zeigen.
Die Zeiten für die Pings prüfen
Gerade wenn es um spezielle Konfigurationen und Scripte geht, kann die PowerShell überzeugen. So prüft das folgende Script die Pingzeiten der einzelnen PCs und falls einer eine höhere Antwortszeit als z. B. 2 ms hat, wird dieser mit seiner IP-Adresse und Antwortzeit ausgegeben. Damit könnte man sehr einfach Rechner ausfindig machen, welche eine lange Antwortzeit haben.
$ping = Test-Connection PC1, DS412, P215LE2
foreach($p in $ping)
{
if ($p.ResponseTime -gt 2)
{
$p.Address + ": " + $p.ResponseTime + "ms"
}
}
Natürlich darf man nicht vergessen, wenn man ein Script erstellt und dies ausführen möchte, so müssen auf dem Windows System auch die Ausführungsrichtlinien entsprechend gesetzt sein.
Mehrere Rechner auf dessen Erreichbarkeit prüfen
Was mit der Windows PowerShell und dem Test-Connection Cmdlet noch vorstellbar wäre ist, dass man ein kleine Script erstellt, welche nur prüft, ob bestimmte Computer erreichbar sind. Hierfür gibt es den Parameter quiet. Dieser liefert im Falle eines erfolgreichen Pings true zurück. Andernfalls natürlich false. Damit kann man jetzt eine Reihe von PCs auf dessen Erreichbarkeit prüfen.
$ping = Test-Connection PC1, DS412, P215LE2 -Quiet
foreach($p in $ping)
{
if ($p -eq $false)
{
Write-Host "PC nicht erreichbar!"
}
}
Falls es übrigens Probleme bei der Namensauflösung gibt und der Namen nicht aufgelöst werden kann, liefert das Script mit dem Parameter Quiet auch false zurück. Mit Test-Connection erhält man dagegen eine Fehlermeldung.
Fazit
Mehr Möglichkeiten mit der Windows PowerShell. Auch beim Prüfen einer vorhandenen Netzwerkverbindung der PCs wird wieder deutlich, wie mächtig die PowerShell ist. Gerade für Spezialfälle, wie das Prüfen auf Ping Zeiten oder der Erreichbarkeit mehrerer Computer, spielt die PowerShell seine Stärken aus.
Interessante Online-Kurse für die Windows PowerShell
Das könnte dich auch interessieren
- IP-Adresse und weitere Netzwerkeinstellungen im Windows Server 2016 konfigurieren -Mit GUI, Cmd oder PowerShell
- Mögliche Netzwerkprobleme durch das Verfolgen von Paketen prüfen – Mit Hilfe der PowerShell den Weg von Netzwerkpaketen nachvollziehen.
- Falls mal die DNS-Namensauflösung nicht klappt könnte das Löschen des lokalen DNS-Caches helfen
- So kann man die DNS Namensauflösung unter Windows 10 oder auch unter einem Windows Server auf korrekte Funktionsweise prüfen
- 10 Tools für die Netzwerkanalyse mit der Kommandozeile cmd
- Windows Tools zur Behebung von Netzwerkproblemen
- Windows für das Netzwerk konfigurieren – Vergabe einer IPv4 Adresse, DNS-Adresse und einer IP Adresse für den Standardgateway