Private/Test-HPUri.ps1

function Test-HPUri {
    [CmdletBinding()]
    param(
        [Parameter(Mandatory)]
        [string]$Uri
    )

    try {
        $response = Invoke-WebRequest -Uri $Uri -Method Head -UseBasicParsing -MaximumRedirection 5 -ErrorAction Stop
        [pscustomobject]@{
            Success    = $true
            StatusCode = [int]$response.StatusCode
            Error      = $null
        }
    }
    catch {
        try {
            $response = Invoke-WebRequest -Uri $Uri -Method Get -UseBasicParsing -MaximumRedirection 5 -Headers @{ Range = 'bytes=0-0' } -ErrorAction Stop
            [pscustomobject]@{
                Success    = $true
                StatusCode = [int]$response.StatusCode
                Error      = $null
            }
        }
        catch {
            [pscustomobject]@{
                Success    = $false
                StatusCode = $null
                Error      = $_.Exception.Message
            }
        }
    }
}