Public/Start-Iperf.ps1
function Start-Iperf { <# .DESCRIPTION Setup and iperf server or client connection for testing connection speeds .PARAMETER server Specify if running in server mode .PARAMETER client Specify if running in client mode .PARAMETER udp Specify to use udp .PARAMETER serverip Specify the ip of the server connecting to when in client mode .PARAMETER port specify the port for the client and server connections .EXAMPLE Setup a iperf server connection Start-Iperf -server -port 10555 .EXAMPLE Initiate a client bandwidth test Start-Iperf -client -serverip 0.0.0.0 -port 10555 .EXAMPLE Initiate a client bandwidth test Start-Iperf -Client -serverip 0.0.0.0 --port 10555 udp #> [CmdletBinding()] Param ( [Parameter(Mandatory = $true, ParameterSetName = 'Server')][Switch]$server, [Parameter(Mandatory = $true, ParameterSetName = 'Client')][switch]$client, [Parameter(Mandatory = $false, ParameterSetName = 'Client')][Switch]$udp, [Parameter(Mandatory = $true, ParameterSetName = 'Client')]$serverip, [Parameter(Mandatory = $true, ParameterSetName = 'Client')] [Parameter(Mandatory = $true, ParameterSetName = 'Server')] $port ) $AdminConsole = [bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match "S-1-5-32-544") if ($AdminConsole -like "False*") { Write-Warning "You need to run PowerShell as an admin to use this function!" Break } if ($server) { iperf3.exe -s -p $port } if ($client) { if ($udp) { iperf3.exe -c $serverip -p $port -u -b 0 } else { iperf3.exe -c $serverip -p $port } } } |