Scripts/PartnerCenter.ps1



# Get all user licenses from all customers

$customers = Get-PartnerCustomer

# $customers = $customers | Where-Object Name -Match "Billy"

$result = @()
$noConsent = @()
$customerStartAt = 918
$customerCount = $customerStartAt
$userCount = 0

foreach ($c in $customers[$customerCount..$customers.Count]) {
    $customerUsers = Get-PartnerCustomerUser -CustomerId $c.CustomerId
    $customerCount++
    if ($customerUsers) {
        foreach ($u in $customerUsers) {
            $userLicenses = Get-PartnerCustomerUserLicense -CustomerId $c.CustomerId -UserId $u.UserId
            $userCount++

            foreach ($l in $userLicenses) {
                Write-Host "Customer: $($c.Name) ($customerCount / $(($customers).Count)) - User: $($u.DisplayName) ($userCount / $(($customerUsers).Count)) - License: $($l.Name)"
                $obj = [PSCustomObject]@{
                    CustomerName      = $c.Name
                    CustomerId        = $c.CustomerId
                    CustomerDomain    = $c.Domain
                    UserName          = $u.DisplayName
                    UserPrincipalName = $u.UserPrincipalName
                    UserId            = $u.UserId
                    License           = $l.Name
                    LicenseGroup      = $l.LicenseGroupId
                }
                $result += $obj
            }
        }
        $userCount = 0
    } else {
        $noConsent += $c
    }
}

$result | Format-Table -AutoSize

$noconsent | Format-Table -AutoSize