Private/Test-CustomNetworkAvailable.ps1

# Will be called in VM
function Global:Test-CustomNetworkAvailable {
    [CmdletBinding()]
    <#
    .SYNOPSIS
        ...
    .DESCRIPTION
        ...
    #>

    param(        
    )
    process {
        $done = $false
        $success = $false
        $noOfTries = 0
        while (-not($done)) {
            try {
                $noOfTries
                if (Test-NetConnection) {
                    $done = $true
                    $success = $true
                }
                else {
                    Start-Sleep -Seconds 2
                }
            }
            catch {
                # Do nothing
            }
            $noOfTries++
            if ($noOfTries -ge 100) {
                # 50 tries max
                $done = $true
            } 
        }
        if (-not($success)) {
            throw "Checked Test-NetConnection $noOfTries times, without success."
        }
    }
}