Die Windows Powershell bietet vielzählige Möglichkeiten. Ich möchte euch mit diesem Artikel die Möglichkeit zeigen, wie man über einen bestimmten Zeitraum die Downloadgeschwindigkeit messen und analysieren kann.
Hintergrund:
Ich hatte oft die Vermutung das mein Provider mir nicht den Downstream zur Verfügung stellt für den ich bezahle. Zudem habe ich immer wieder Ausfälle. Nach vielen Telefonaten mit meinem Anbieter und immer der selben Antwort "wir sehen im Log keine Auffälligkeiten", wollte ich die Sache selbst in die Hand nehmen.
Lösung:
Nach kurzer Suche bin ich auf ein Powershell script von "velecky@velecky.onmicrosoft.com" aufmerksam geworden. Das Script greift auf die Ressourcen von Speedtest.net zu und gibt die aktuelle Downloadgeschwindigkeit aus.
Eine kleine Veränderung muss am Script vorgenommen werden. Am Ende des Scripts ist die Wertausgabe mithilfe von "Write-Host" geregelt. Dies hat zur folge, dass das Ergebnis zwar bei einzelner Ausführung auf dem Bildschirm angezeigt wird aber es kann nicht von einem ReDirect oder einer Pipeline aufgenommen werden. Somit habe ich "Write-Host" durch "echo" ersetzt.
Write-Host "Wan Speed is $($Wanspeed) Mbit/Sec"
--> echo "$($Wanspeed) Mbit/Sec"
Die Datei veränderte Datei stelle ich im geteilten Ordner zur Verfügung.
Weitere Informationen sowie die Quelle findet ihr hier:
https://www.powershellgallery.com/packages/Speedtest/2.0/DisplayScript
Nun muss für den Langzeittest eine Ausgabedatei mit den Testwerten erstellt werden. Hierzu habe ich folgendes Script geschrieben: Speedtest_to_csv.ps1.
https://goo.gl/GZnE5z (In diesem Ordner befindet sich auch die veränderte Speedtest.ps1)
Voraussetzungen damit das Script funktioniert sind:
- Ordner C:\Temp
- Beide Scripts in diesem Ordner
Nun muss nur noch eine Aufgabe in der Aufgabenplanung erstellt werden und schon läuft das Script zum angegebenen Trigger.
Den Trigger habe ich folgendermaßen eingestellt:
In diesem Beispiel wird das Script über eine Woche jede Stunde ausgeführt.
Als Aktion wird in "Programm/Skript"
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
eingetragen und als Argument
-ExecutionPolicy Bypass -file "C:\Temp\Speedtest_to_csv.ps1"
Das ist meine Lösung um einen Langzeittest zu kreieren. Nach Abschluss des Tests kann man die Werte beispielsweise in Excel als Diagramm anzeigen lassen und die Daten auswerten.