functions/private/Get-0365License.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function Get-O365License {
    [cmdletbinding()]
    [OutputType([HashTable])]
    param(
    [Parameter(Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [string]$TenantId
    )
    $Licenses = @{};
    $Usage = (Get-AzureADUser -All $true).AssignedLicenses|group -Property SkuId
    (Get-AzureADSubscribedSku).foreach{
        $License = New-Object License
        $License.Id = $_.SkuId
        $License.Name = $_.SkuPartNumber
        $License.Available = ($_.PrePaidUnits.enabled - $($Usage.where{$_.Name -eq $License.Name}).Count)
        $Licenses.Add($License.Name,$License)
    }
    $Licenses
}