Private/Helper/Find-AvailablePort.ps1
|
function Find-AvailablePort { param([int]$StartPort = 8081, [int]$MaxAttempts = 10) $Port = $StartPort $Attempts = 0 while ($Attempts -lt $MaxAttempts) { $TcpListener = [System.Net.Sockets.TcpListener]::new($Port) try { $TcpListener.Start() return $Port } catch { $Attempts++ $Port++ } finally { $TcpListener.Stop() $TcpListener.Dispose() } } throw "No available port found" } |