#PSTip Test if a URL is absolute or not

The System.Uri class in .NET provides a way to validate if a URL is an absolute URL or not. This can be quite handy when your script deals with downloading content from web pages and there is a need to validate the specified URL.

The IsWellFormedUriString method provides this capability.


The UriKind enumeration has three values–Absolute, Relative, and RelativeOrAbsolute. The IsWellFormedUriString() method returns a Boolean value based on the match.

I wrapped this in a small function called Test-Url:

Function Test-Url {
    param (
        [String] $Url

    Process {
        if ([system.uri]::IsWellFormedUriString($Url,[System.UriKind]::Absolute)) {
        } else {

And, here is a practical example where I am using this function.

$doc = Invoke-WebRequest -Uri 'https://www.python.org/downloads'
foreach ($href in ($doc.links.href -ne '')) {
    if (Test-Url -Url $href) {
Share on: