62 lines
2.6 KiB
PowerShell
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""" } |