Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <# : Batch Script Section
- @rem # The previous line does nothing in Batch, but begins a multiline comment block in PowerShell. This allows a single script to be executed by both interpreters.
- @echo off
- Title SpeedTest Script Written by Hackoo And Powered by Ookla 2022 & Mode 100,25
- @REM OPEN CMD WINDOW MAXIMIZED
- @REM IF NOT "%1"=="MAX" START /MAX CMD /D /C "%~0" MAX & GOTO :EOF
- cd "%~dp0" & echo %~nx0>"%temp%\MyScriptName.txt"
- Color 1B & echo( & Echo(
- Echo( Please Wait ... Loading script is in Progress ...
- Powershell -executionpolicy bypass -Command "Invoke-Expression $([System.IO.File]::ReadAllText('%~f0'))"
- EndLocal
- pause
- goto:eof
- #>
- # Powershell Script Section begin here...
- # Here we execute our powershell commands...
- cls
- # https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-win64.zip
- Add-Type -AssemblyName System.IO.Compression.FileSystem
- function Unzip
- {
- param([string]$zipfile, [string]$outpath)
- [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)
- }
- if($OS_Architecture -eq 'x86')
- {
- write-host 'Your System is 32-bit. Sorry ! This Program is incompatible under this System !' -fore Red
- break
- }
- else
- {
- ############# Playing Music in Background just for relax and have fun #################
- Add-Type -assemblyName PresentationFramework
- Function Start-Music {
- $code = {
- $Radios_Stations_Array = @(
- "http://retro.dancewave.online/retrodance.mp3",
- "http://www.leeholmes.com/projects/ps_html5/background.mp3",
- "http://radio.mosaiquefm.net:8000/mosagold",
- "http://radio.mosaiquefm.net:8000/mosadj",
- "https://stream.initialradio.fr:8443/djbuzz-192k.mp3",
- "http://audio1.maxi80.com"
- )
- $MyShuffledList = $Radios_Stations_Array | Sort {Get-Random}
- $url = $MyShuffledList[1]
- $player = New-Object -ComObject 'MediaPlayer.MediaPlayer'
- $player.Open($url)
- $player
- }
- $script:ps = [PowerShell]::Create()
- $script:player = @($ps.AddScript($code).Invoke())[0]
- }
- #######################################################################################
- Function Stop-Music
- {
- if ($script:player -ne $null)
- {
- $script:player.Stop()
- Remove-Variable -Name player -Scope script
- }
- if ($script:ps -ne $null)
- {
- $script:ps.Runspace.Close()
- $script:ps.Dispose()
- Remove-Variable -Name ps -Scope script
- }
- }
- ###############################################################################################
- # Starting to play music while executing the script
- Write-Host " Please Wait a while ... SpeedTest is in progress ..." -Fore Yellow
- Start-Music
- $start_time = Get-Date
- ###############################################################################################
- $Title = "SpeedTest Script Written by Hackoo And Powered by Ookla 2022"
- $ErrorActionPreference = "SilentlyContinue"
- $Zip_URL = "https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-win64.zip"
- $Zip_File = "$env:TEMP\speedtest.zip"
- $ExtractPath = "$env:TEMP\SpeedTest"
- $SpeedTest_EXE = "$ExtractPath\speedtest.exe"
- ######################### Create A Shortcut to this Script on Desktop #########################
- $MyScriptName = GC "$Env:Temp\MyScriptName.txt"
- $MyPath = [System.IO.Path]::GetFullPath([System.IO.Path]::Combine($pwd,"$MyScriptName"))
- $WshShell = New-Object -comObject WScript.Shell
- $Shortcut = $WshShell.CreateShortcut("$Home\Desktop\SpeedTest.lnk")
- $Shortcut.TargetPath = "$MyPath"
- $Shortcut.IconLocation = "$SpeedTest_EXE"
- $Shortcut.WorkingDirectory = "$([System.IO.Path]::GetFullPath([System.IO.Path]::Combine($pwd,'')))"
- $Shortcut.Description = "$Title"
- $Shortcut.HotKey = "CTRL+ALT+S"
- $Shortcut.Save()
- ###############################################################################################
- # Check if file does not exists , we download and unzip it
- if (-not(Test-Path -Path "$Zip_File" -PathType Leaf)) {
- Try{$Download = (New-Object System.Net.WebClient).DownloadFile("$Zip_URL","$Zip_File")}
- catch {write-host "$_.Exception.Message" -fore Red;Stop-Music;Break;}
- unzip "$Zip_File" "$ExtractPath"
- }
- # Check if file SpeedTest.exe does exists
- if (Test-Path -Path "$SpeedTest_EXE" -PathType Leaf) {
- $Speedtest = & "$SpeedTest_EXE" --format=json --accept-license --accept-gdpr
- $Speedtest | Out-File "$ExtractPath\Last.txt" -Force
- $Speedtest = $Speedtest | ConvertFrom-Json
- }
- [PSCustomObject]$SpeedObject = @{
- SSID = (get-netconnectionProfile).Name
- ComputerName = $($env:computername)
- UserName = $($env:username)
- TimeStamp = Get-Date -F "dd/MM/yyyy HH:mm:ss" $Speedtest.timestamp
- Downloadspeed = [math]::Round($Speedtest.download.bandwidth / 1000000 * 8, 2)
- Uploadspeed = [math]::Round($Speedtest.upload.bandwidth / 1000000 * 8, 2)
- Packetloss = [math]::Round($Speedtest.packetLoss)
- ISP = $Speedtest.isp
- Location = $Speedtest.server.location
- Country = $Speedtest.server.Country
- ExternalIP = $Speedtest.interface.externalIp
- InternalIP = $Speedtest.interface.internalIp
- MACAddr = $Speedtest.interface.macAddr
- VPN = $Speedtest.interface.isVpn
- ServerName = $Speedtest.server.name
- UsedServer = $Speedtest.server.host
- URLResult = $Speedtest.result.url
- Jitter = [math]::Round($Speedtest.ping.jitter)
- Latency = [math]::Round($Speedtest.ping.latency)
- }
- cls
- $LogFile = $($SpeedObject.SSID)+"_"+$($env:computername)+"_"+$($env:username)+"_"+"SpeedTest_Results.txt"
- $SpeedObject | ConvertTo-Json | Out-File ".\$LogFile" -Append
- $SpeedObject
- $Elapsed_Time = "$((Get-Date).Subtract($start_time).Minutes) Minutes(M) : $((Get-Date).Subtract($start_time).Seconds) Secondes(s)"
- $shell = new-object -comobject "WScript.Shell"
- $Answer = $shell.popup("Running Script Time Taken is : $Elapsed_Time `r`nDo you want to launch the result with your default browser ?",0,"$Title",4+32+4096)
- If ($Answer -eq 6) {
- Write-Host "OK We are Starting the result with your default browser !" -ForegroundColor Yellow -BackgroundColor Blue
- ii ".\$LogFile"
- Start $SpeedObject.URLResult
- $PS_Version=$PSversionTable.PSVersion.Major
- If ($PS_Version -ge 2) {$SpeedObject | OGV -Title $Title -Wait}
- }
- else {
- Write-Host "Script Aborted !" -ForegroundColor Yellow -BackgroundColor Blue
- ii ".\$LogFile"
- }
- Stop-Music
- }
Advertisement
Add Comment
Please, Sign In to add comment