Files
management-scripts/Test-InternetBandwidth.ps1

62 lines
2.6 KiB
PowerShell

## Specify URL to SpeedTest CLI app
$URL = 'https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-win64.zip'
## Download the app from the URL
$ZIPFILE = Download-File -URL $URL
## Setup the directory to extract the downloaded zip file to
$WORKINGDIR = $ZIPFILE.Substring(0, $ZIPFILE.LastIndexOf('.'))
If ( Test-Path $WORKINGDIR ) {
Write-Output "Deleting existing directory: ""$WORKINGDIR"""
Try { Remove-Item -Path $WORKINGDIR -Recurse -Force }
Catch { Write-Error $_.Exception.Message }
}
Write-Output "Creating new directory: ""$WORKINGDIR"""
Try { New-Item -Path $WORKINGDIR -ItemType Directory -Force | Out-Null }
Catch { Write-Error $_.Exception.Message }
## Extract $ZIPFILE to $WORKINGDIR
Try {
Add-Type -Assembly System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::ExtractToDirectory($ZIPFILE, $WORKINGDIR)
}
Catch { Write-Error $_.Exception.Message }
## Run the SpeedTest CLI app
$SPEEDTEST = "${WORKINGDIR}\speedtest.exe"
If ( Test-Path $SPEEDTEST ) {
Try {
Write-Output "Starting internet bandwidth test"
$RESULTS = [string]( cmd.exe /c ""${SPEEDTEST} --accept-license --progress=no"" )
## Cleanup the output
If ( -not [string]::IsNullOrEmpty($RESULTS) ) {
$RESULTS = $RESULTS -replace "Server: ", "`n`nServer: "
$RESULTS = $RESULTS -replace "ISP: ", "`nISP: "
$RESULTS = $RESULTS -replace "Latency: ", "`nLatency: "
$RESULTS = $RESULTS -replace "Download: ", "`nDownload: "
$RESULTS = $RESULTS -replace "Upload: ", "`nUpload: "
$RESULTS = $RESULTS -replace "Packet Loss: ", "`nPacket Loss: "
$RESULTS = $RESULTS -replace "Result URL: ", "`nResult URL: "
$RESULTS = $RESULTS + "`n"
} Else { $RESULTS = "The test did not product any output" }
Write-Output $RESULTS
Write-Output "Finished internet bandwidth test"
}
Catch { Write-Error $_.Exception.Message }
} Else { Write-Output "The file does not exist at the expected path: ""${SPEEDTEST}""" }
## Cleanup files and directories created by this script
If ( Test-Path $ZIPFILE ) {
Write-Output "Deleting downloaded zip file: ""$ZIPFILE"""
Try { Remove-Item -Path $ZIPFILE -Force }
Catch { Write-Error $_.Exception.Message }
} Else { Write-Output "Downloaded zip file no longer exists: ""$ZIPFILE""" }
If ( Test-Path $WORKINGDIR ) {
Write-Output "Deleting directory from extracted zip file: ""$WORKINGDIR"""
Try { Remove-Item -Path $WORKINGDIR -Recurse -Force }
Catch { Write-Error $_.Exception.Message }
} Else { Write-Output "Directory from extracted zip file no longer exists: ""$WORKINGDIR""" }