Public/UriBuilder.ps1
Set-StrictMode -Version 2.0 function Get-Uri { [Alias('UriBuilder')] [CmdLetBinding()] param ( [Parameter(ParameterSetName = "__schemeProtocol", Position = 0)] [ValidateSet("file", "ftp", "gopher", "http", "https", "mailto", "news")] [string]$scheme = "http", [Parameter(ParameterSetName = "__schemeUseSsl", Position = 0)] [bool]$useSsl = $false, [Parameter(Mandatory = $true, Position = 1)] [string]$hostName, [int]$port, [string]$path, [string]$query, [string]$fragment ) [System.UriBuilder]$uriBuilder = New-Object -TypeName 'System.UriBuilder' switch ($PSCmdlet.ParameterSetName) { '__schemeProtocol' { $uriBuilder.Scheme = $scheme } '__schemeUseSsl' { $uriBuilder.Scheme = $(if ($useSsl) { 'https' } else { 'http' }) } } $uriBuilder.Host = $hostName if ($port) { $uriBuilder.Port = $port } if ($path) { $uriBuilder.Path = $path } if ($query) { $uriBuilder.Query = $query } if ($fragment) { $uriBuilder.Fragment = $fragment } return [string]$($uriBuilder) } Set-Alias -Name UriBuilder -Value Get-Uri Export-ModuleMember -Function Get-Uri -Alias UriBuilder |