Ping mit der PowerShell

Im letzten Blogeintrag haben wir uns mit der Exchange SMTP Hauptadresse beschäftigt.

In diesem Blogeintrag schauen wir uns an, wie man den ping Befehl aus der CMD Shell mit der PowerShell ablösen kann.

In Vor-PowerShell Zeiten hat man gerne das CMD Tool ping genutzt, um die Erreichbarkeit und die Paketumlaufzeit zu einem Zielsystem zu messen.

Dafür wird ein spezielles ICMP-Echo-Request-Paket zum Zielsystem verschickt und dann auf das Antwort-Paket ICMP-Echo-Reply gewartet. Diese Zeitspanne wird gemessen. Nach einer Wartezeit ohne Antwortpaket wird das Zielsystem als „nicht erreichbar“ gewertet. (Manche Systeme blocken allerdings auch bewusst aus Sicherheitsgründen die Ping Pakete, das heißt es ist kein sicherer Beweis, dass das Zielsystem nicht erreichbar ist)

Standardmäßig werden bei einem ping in der CMD 4 Pakete verschickt mit einer Wartezeit von 1000 Millisekunden.

Außerdem wird eine Statistik erstellt mit dem schnellsten und dem langsamsten Paket und dem Durchschnitt aller Pakete.

 

In der PowerShell gibt es dafür den Befehl Test-Connection

Mit Test-Connection Servername kann ich ein System anpingen.

 

Möchte ich eine Statistik über die Pingzeiten, dann muss ich eine Messung über die Ergebnisobjekte durchführen:

Test-Connection heise.de |Measure-Object responsetime -Max -Min -Sum -Average

Count    : 4

Average  : 8,25

Sum      : 33

Maximum  : 9

Minimum  : 8

Property : responsetime

 

 

Das Schöne an der PowerShell ist, dass ich anhand des Messergebnisses weitere Befehle ausführen kann. Als Beispiel:

Mit einem Einzeiler kann ich eine 24 Stunden Messung durchführen und nur die Pings ausgeben, die z.B. eine Latenz größer gleich 10 Millisekunden haben.

(0..86400) | Foreach {$rt = (Test-Connection heise.de -Count 1).responsetime; if ($rt -ge 10) {Write-Host "$((Get-Date).ToString("dd.MM.yyyy_HH.mm.ss")) - ResponseTime $rt ms" -foregroundcolor red};Start-Sleep 1}

Im nächsten Blogeintrag beschäftigen wir uns damit, wie man den telnet Befehl mit der PowerShell umsetzen kann.

Was denken Sie?