functions/Get-AzSRSubscription.ps1

<#
.SYNOPSIS
    Gets all subscriptions for a tenant.
 
.DESCRIPTION
    Gets all subscriptions for a tenant.
 
    https://docs.microsoft.com/en-us/rest/api/resources/subscriptions/list
 
.EXAMPLE
    $Subscriptions = Get-AzSRSubscription
 
.NOTES
    Copyright: (c) 2018 Fabian Bader
    License: MIT https://opensource.org/licenses/MIT
#>

function Get-AzSRSubscription {
    [CmdletBinding()]
    param (

    )

    Begin {
        #region Get AccessToken
        try {
            $AccessToken = Get-AzureRmCachedAccessToken
            $LoginHeader = @{
                'authorization' = "Bearer $AccessToken"
            }
        } catch {
            throw $($_.Exception.Message)
        }
        #endregion
    }

    Process {
        $uri = 'https://management.azure.com/subscriptions?api-version=2018-05-01&`$expand=inherited'
        $params = @{
            ContentType = 'application/x-www-form-urlencoded'
            Headers     = $LoginHeader
            Method      = 'Get'
            URI         = $uri
            Verbose     = $false
        }

        $Response = Invoke-RestMethod @params
        $Response.value | ForEach-Object {
            Return New-Object psobject -Property @{
                "id"                  = $_.id
                "subscriptionId"      = $_.subscriptionId
                "displayName"         = $_.displayName
                "state"               = $_.state
                "locationPlacementId" = $_.subscriptionPolicies.locationPlacementId
                "quotaId"             = $_.subscriptionPolicies.quotaId
                "spendingLimit"       = $_.subscriptionPolicies.spendingLimit
                "authorizationSource" = $_.authorizationSource
            }
        }
    }
    End {

    }
}