## Specify URL to SpeedTest CLI app $URL = 'https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-win64.zip' ## Specify output file to write data to $CurrentDateTime = Get-Date -Format "yyyyMMddHHmmssffff" $OUTPUT = "${OutputDirectory}\${CurrentDateTime}_SpeedTest.csv" ## 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 ) { LogMsg "Deleting existing directory: ""$WORKINGDIR""" Try { Remove-Item -Path $WORKINGDIR -Recurse -Force } Catch { LogErr $_.Exception.Message } } LogMsg "Creating new directory: ""$WORKINGDIR""" Try { New-Item -Path $WORKINGDIR -ItemType Directory -Force | Out-Null } Catch { LogErr $_.Exception.Message } ## Extract $ZIPFILE to $WORKINGDIR Try { Add-Type -Assembly �System.IO.Compression.FileSystem� [IO.Compression.ZipFile]::ExtractToDirectory($ZIPFILE, $WORKINGDIR) } Catch { LogErr $_.Exception.Message } ## Run the SpeedTest CLI app $SPEEDTEST = "${WORKINGDIR}\speedtest.exe" If ( Test-Path $SPEEDTEST ) { #Try { Start-Process $SPEEDTEST -ArgumentList "--progress=no --selection-details --output-header --format=csv" -PassThru -Wait -RedirectStandardOutput $OUTPUT } Try { $RESULTS = (cmd.exe /c "${SPEEDTEST} --progress=no") LogMsg $RESULTS } Catch { LogErr $_.Exception.Message } } Else { LogMsg "The file does not exist at the expected path: ""${SPEEDTEST}""" } ## Cleanup files and directories created by this script If ( Test-Path $ZIPFILE ) { LogMsg "Deleting downloaded zip file: ""$ZIPFILE""" Try { Remove-Item -Path $ZIPFILE -Force } Catch { LogErr $_.Exception.Message } } Else { LogMsg "Downloaded zip file no longer exists: ""$ZIPFILE""" } If ( Test-Path $WORKINGDIR ) { LogMsg "Deleting directory from extracted zip file: ""$WORKINGDIR""" Try { Remove-Item -Path $WORKINGDIR -Recurse -Force } Catch { LogErr $_.Exception.Message } } Else { LogMsg "Directory from extracted zip file no longer exists: ""$WORKINGDIR""" }