Get-MsftTenantDiscoveryInstance.ps1

<#
.SYNOPSIS
   Get Tenant Discovery Instance Information for a Microsoft Identity Provider Endpoint.
.EXAMPLE
   Get-MsftTenantDiscoveryInstance https://login.windows.net/common/oauth2/v2.0/authorize
.EXAMPLE
   'https://login.windows.net/common/oauth2/v2.0/authorize','user2@domainA.com' | Get-MsftTenantDiscoveryInstance
#>

function Get-MsftTenantDiscoveryInstance {
    [CmdletBinding()]
    [OutputType([PsCustomObject[]])]
    param
    (
        #
        [Parameter(Mandatory=$true, ValueFromPipeline=$true, Position=1)]
        [string[]] $AuthorizationEndpoints,
        # API Version
        [Parameter(Mandatory=$false)]
        [string] $ApiVersion = '1.1'
    )

    process {
        foreach ($AuthorizationEndpoint in $AuthorizationEndpoints) {
            $uriDiscoverInstance = New-Object System.UriBuilder 'https://login.microsoftonline.com/common/discovery/instance'
            $uriDiscoverInstance.Query = ConvertTo-QueryString @{
                'api-version' = $ApiVersion
                'authorization_endpoint' = $AuthorizationEndpoint
            }

            $Result = Invoke-RestMethod -Method Get -Uri $uriDiscoverInstance.Uri.AbsoluteUri
            Write-Output $Result
        }
    }
}