Browse Source

Ajouter 'speedtest.ps1'

Alexandre MOTTIER 3 years ago
parent
commit
1678a931dd
1 changed files with 49 additions and 0 deletions
  1. 49 0
      speedtest.ps1

+ 49 - 0
speedtest.ps1

@@ -0,0 +1,49 @@
+## Measures the speed of the download, can only be ran on a PC running Windows 10 or a server running Server 2016+, plan is to add uploading also
+## Majority of this script has been copied/butchered from https://www.ramblingtechie.co.uk/2020/07/13/internet-speed-test-in-powershell/
+# MINIMUM ACCEPTED THRESHOLD IN mbps 
+$mindownloadspeed = 10
+$minuploadspeed = 0.5
+
+# File to download you can find download links for other files here https://speedtest.flonix.net
+$downloadurl = "https://services.am-networks.fr/jirafeau/f.php?h=1AJKnNts&d=1"
+#$UploadURL = "http://ipv4.download.thinkbroadband.com/10MB.zip"
+
+# SIZE OF SPECIFIED FILE IN MB (adjust this to match the size of your file in MB as above)
+$size = 20
+# Name of Downloaded file
+$localfile = "SpeedTest.bin"
+
+# WEB CLIENT VARIABLES
+$webclient = New-Object System.Net.WebClient
+
+#RUN DOWNLOAD & CALCULATE DOWNLOAD SPEED
+$downloadstart_time = Get-Date
+$webclient.DownloadFile($downloadurl, $localfile)
+$downloadtimetaken = $((Get-Date).Subtract($downloadstart_time).Seconds)
+$downloadspeed = ($size / $downloadtimetaken)*4
+Write-Output "Time taken: $downloadtimetaken second(s) | Download Speed: $downloadspeed mbps"
+
+#RUN UPLOAD & CALCULATE UPLOAD SPEED
+#$uploadstart_time = Get-Date
+#$webclient.UploadFile($UploadURL, $localfile) > $null;
+#$uploadtimetaken = $((Get-Date).Subtract($uploadstart_time).Seconds)
+#$uploadspeed = ($size / $uploadtimetaken) * 8
+#Write-Output "Time taken: $uploadtimetaken second(s) | Upload Speed: $uploadspeed mbps"
+
+#DELETE TEST DOWNLOAD FILE
+Remove-Item -path $localfile
+
+#SEND ALERTS IF BELOW MINIMUM THRESHOLD 
+if ($downloadspeed -ge $mindownloadspeed) 
+{ 
+Write-Output "Speed is acceptable. Current download speed at is $downloadspeed mbps which is above the threshold of $mindownloadspeed mbps" 
+exit 0
+}
+
+else 
+{ 
+Write-Output "Current download speed at is $downloadspeed mbps which is below the minimum threshold of $mindownloadspeed mbps" 
+exit 1
+}
+
+Exit $LASTEXITCODE