Test-MrURL.ps1

#Requires -Version 3.0
function Test-MrURL {
    [CmdletBinding()]
    param (
        [string]$Uri,
        [switch]$Detailed
    )

    $CurrentErrorAction = $ErrorActionPreference

    $ErrorActionPreference = 'SilentlyContinue'
    $Result = Invoke-WebRequest -Uri $Uri -TimeoutSec 30
    $ErrorActionPreference = $CurrentErrorAction

    if ($Result.StatusCode -ne 200) {
        $false    
    }
    elseif (-not $Detailed) {
        $true
    }
    else {
        [pscustomobject]@{
            StatusDescription = $Result.StatusDescription
            StatusCode = $Result.StatusCode
            ResponseUri = $Result.BaseResponse.ResponseUri
            Server = $Result.BaseResponse.Server
        }
    }

}