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

So prüft man den PC mit der Windows PowerShell auf Erreichbarkeit

Ü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, so dass 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 Scriptsprache 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 vom dem Computer PC1 einen Ping an die Synology Diskstation (Anzeige)*  mit dem Namen DS412 senden. Übrigens kann man durch Kommas getrennt auch mehrere Quell -und Zieladressen angeben.

Möchte man sich  bei einer Pinganfrage ü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 PC´s 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 ein Reihe von PC´s 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 PC´s wird wieder deutlich, wie mächtig die PowerShell ist. Gerade für Spezialfälle, wie das prüfen auf Pingzeiten oder der Erreichbarkeit mehrerer Computer, spielt die PowerShell seine stärken aus.

Interessantes

Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 8.12.2021

Das könnte dich auch interessieren

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*