#
SpeedTest-CLI Powershell Module
#
Another SpeedTest Module 💨
Well Adam why on earth did you go and do another Crescendo Powershell module for an internet speed-test when you did one of these last month? Dearest reader, as I have 4 beautiful daughters who I try my very best to provide for, means that me aka Dad is left to still use his very old x86 laptop. So to actually even build the last speedtest module I needed to borrow my Wifes' much newer x64 laptop and build and deploy the module. Which meant that when I was writing the blog for the last speedtest module, I didn't include any screen-shots of the actual module in motion as I could not even run it on my laptop 😭 To make things right, I found another speedtest command line program that is compatible with both x86 and x64 meaning I could actually run this speedtest module I was building on my own laptop. Which to me was worth the effort to build this, as there are probably countless other dads out there having to make do with their decade old laptop, but also want to run speedtests via the command line right?
You need Scoop or Chocolatey
As this is a complete stand-alone command-line execuatable I couldn't just magically make this work with you just downloading the module. So you will need to install this speedtest program which I will show you how
#
Scoop 🍦
I have used Chocolatey in the past, but at the moment I have Scoop installed. So I am going to produce the super quick guide to installing Scoop and getting this speedtest installed. Are you ready?
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
scoop bucket add extras
scoop install librespeed-cli
💥 that's is all you have to do, 3 lines of code, to install scoop, add the extras, and install the program needed for this module. Now you have scoop installed, and the actual program, you could just get running it, but where would be the fun in that if you are not using a cmdlet to run the program?
#
Example ▶️
Not that I do not trust all my readers, but I will just be outputting the simple results, as I do not wish to share my personal IP address or ISP, but this information is shown in the tests. So lets get round to some good old fashioned examples:-
Initialize-SpeedTest -Simple
So today using my home broadband connection I can see I got 102.51Mbps download, and 9.58Mbps upload. This program will select the closet server to you, but you can over-ride that:-
Initialize-SpeedTest -ListServers
So now if I wanted to test my connection but to a server in Japan (listed as number 82) instead of London which it would have defaulted to I can use:-
Initialize-SpeedTest -Server 82 -Simple
Please see all the available parameters I included below
PARAMETERS
-CSV
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-ListServers
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-NoICMP
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-Server <int>
Required? false
Position? 0
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-Share
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-Simple
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-ipv4only
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
-ipv6only
Required? false
Position? Named
Accept pipeline input? false
Parameter set name (All)
Aliases None
Dynamic? false
Accept wildcard characters? false
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (https://go.microsoft.com/fwlink/?LinkID=113216).
I showed how to use 3 of these parameters, all the parameters minus the -Server parameter are switch parameters, so they are either on or off.
Thanks for reading I hope this module finds a place in your toolkit. 😁