Mehr Möglichkeiten mit der PowerShell beim prüfen von Netzwerkverbindungen!

Ü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
Netzwerkverbindung mit der Windows PowerShell testen - Werte von Test-Connection
Netzwerkverbindung mit der Windows PowerShell testen – Werte von Test-Connection

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

Windows 11 – Einführung in Betriebssysteme (1/2)*
Windows 11 PowerShell Cookbook*
Automatisierung mit PowerShell (1/3): Grundlagen*

Das könnte dich auch interessieren


Kostenlose E-Books & Befehlsreferenzen


Die neuesten Anleitungen und Beiträge

Abonniere den Newsletter und erhalte die neuesten Anleitungen

Weitere interessante Artikel

Kostenlose E-Books & Befehlsreferenzen

Schließe dich den mehr als 1000 Abonnenten an!

  • 10 Tipps nach der Windows Installation 
  • 10 Tipps nach der Windows Server Installation
  • Windows 11 - Dein Start mit dem neuen Betriebssystem
  • Einstieg in Docker - Kurzüberblick
  • Viele Befehlreferenzen zur PowerShell, cmd, etc. 
Scroll to Top