1 Introduction | 2 Features | 3 Requirements | 4 Preparations | 5 Usage | 6 Examples
6 Examples
6.1 Example calls
6.1.1 Basic example with default settings
Prepares a status report with default values by using only necessary parameters for authentication and report delivery
$directoryID = '00000000-0000-0000-0000-000000000000'
$applicationID = '00000000-0000-0000-0000-000000000000'
$certificateThumbprint = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
$senderAddress = 'sender@example.com'
$recipientAddresses_normal = @(
'recipient_1@example.com'
'recipient_2@example.com'
)
Get-AzureADLicenseStatus -DirectoryID $directoryID -ApplicationID $applicationID -CertificateThumbprint $certificateThumbprint -SenderAddress $senderAddress -RecipientAddresses_normal $recipientAddresses_normal
6.1.2 Basic example with modified thresholds
Prepares a status report with customized thresholds for larger organizations and additional recipients for when license counts reach critical levels
$directoryID = '00000000-0000-0000-0000-000000000000'
$applicationID = '00000000-0000-0000-0000-000000000000'
$certificateThumbprint = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
$senderAddress = 'sender@example.com'
$recipientAddresses_normal = @(
'recipient_1@example.com'
'recipient_2@example.com'
)
$recipientAddresses_critical = @(
'recipient_3@example.com'
'recipient_4@example.com'
)
$skuPercentageThreshold_normal = 1
$skuTotalThreshold_normal = 100
$skuPercentageThreshold_important = 1
$skuTotalThreshold_important = 500
Get-AzureADLicenseStatus -DirectoryID $directoryID -ApplicationID $applicationID -CertificateThumbprint $certificateThumbprint -SenderAddress $senderAddress -RecipientAddresses_normal $recipientAddresses_normal -RecipientAddresses_critical $recipientAddresses_critical -SKUPercentageThreshold_normal $skuPercentageThreshold_normal -SKUTotalThreshold_normal $skuTotalThreshold_normal -SKUPercentageThreshold_important $skuPercentageThreshold_important -SKUTotalThreshold_important $skuTotalThreshold_important
6.1.3 Advanced example
Prepares a status report by using an Azure certificate for automation purposes, specifying both important and interchangeable SKUs and activating advanced checkups
$directoryID = '00000000-0000-0000-0000-000000000000'
$applicationID = '00000000-0000-0000-0000-000000000000'
$subscriptionID = '00000000-0000-0000-0000-000000000000'
$keyVaultName = 'MyKeyVault'
$certificateName = 'MyCertificate'
$senderAddress = 'sender@example.com'
$recipientAddresses_normal = @(
'recipient_1@example.com'
'recipient_2@example.com'
)
$recipientAddresses_critical = @(
'recipient_3@example.com'
'recipient_4@example.com'
)
$skuPercentageThreshold_normal = 1
$skuTotalThreshold_normal = 100
$skuPercentageThreshold_important = 1
$skuTotalThreshold_important = 500
$importantSKUs = @(
'18181a46-0d4e-45cd-891e-60aabd171b4e'
'6fd2c87f-b296-42f0-b197-1e91e994b900'
)
$interchangeableSKUs = @(
'4b585984-651b-448a-9e53-3b10f069cf7f'
'18181a46-0d4e-45cd-891e-60aabd171b4e'
'6fd2c87f-b296-42f0-b197-1e91e994b900'
'c7df2760-2c81-4ef7-b578-5b5392b571df'
)
Get-AzureADLicenseStatus -DirectoryID $directoryID -ApplicationID $applicationID -SubscriptionID $subscriptionID -KeyVaultName $keyVaultName -CertificateName $certificateName -SenderAddress $senderAddress -RecipientAddresses_normal $recipientAddresses_normal -RecipientAddresses_critical $recipientAddresses_critical -SKUPercentageThreshold_normal $skuPercentageThreshold_normal -SKUTotalThreshold_normal $skuTotalThreshold_normal -SKUPercentageThreshold_important $skuPercentageThreshold_important -SKUTotalThreshold_important $skuTotalThreshold_important -ImportantSKUs $importantSKUs -InterchangeableSKUs $interchangeableSKUs -AdvancedCheckups
6.1.4 Complete example
Prepares a status report by using an Azure certificate for automation purposes, specifying important, interchangeable and preferable SKUs with their prices and activating advanced checkups
$directoryID = '00000000-0000-0000-0000-000000000000'
$applicationID = '00000000-0000-0000-0000-000000000000'
$subscriptionID = '00000000-0000-0000-0000-000000000000'
$keyVaultName = 'MyKeyVault'
$certificateName = 'MyCertificate'
$senderAddress = 'sender@example.com'
$recipientAddresses_normal = @(
'recipient_1@example.com'
'recipient_2@example.com'
)
$recipientAddresses_critical = @(
'recipient_3@example.com'
'recipient_4@example.com'
)
$skuPercentageThreshold_normal = 1
$skuTotalThreshold_normal = 100
$skuPercentageThreshold_important = 1
$skuTotalThreshold_important = 500
$importantSKUs = @(
'18181a46-0d4e-45cd-891e-60aabd171b4e'
'6fd2c87f-b296-42f0-b197-1e91e994b900'
)
$interchangeableSKUs = @(
'4b585984-651b-448a-9e53-3b10f069cf7f'
'18181a46-0d4e-45cd-891e-60aabd171b4e'
'6fd2c87f-b296-42f0-b197-1e91e994b900'
'c7df2760-2c81-4ef7-b578-5b5392b571df'
)
$preferableSKUs = @(
[SKURule]@{
SKUID = [guid]::Empty
AccountGuest = 'True'
}
[SKURule]@{
SKUID = [guid]::Empty
CreatedEarlierThan = [datetime]::Now.AddYears(-2)
LastActiveEarlierThan = [datetime]::Now.AddYears(-2)
}
[SKURule]@{
SKUID = '4b585984-651b-448a-9e53-3b10f069cf7f'
OneDriveGBUsedLessThan = 2
MailboxGBUsedLessThan = 2
MailboxHasArchive = 'False'
WindowsAppUsed = 'False'
MacAppUsed = 'False'
}
[SKURule]@{
SKUID = '18181a46-0d4e-45cd-891e-60aabd171b4e'
MailboxGBUsedLessThan = 50
MailboxHasArchive = 'False'
WindowsAppUsed = 'False'
MacAppUsed = 'False'
}
)
$skuPrices = @(
[SKUPrice]@{
SKUID = '4b585984-651b-448a-9e53-3b10f069cf7f'
Price = 4.0
}
[SKUPrice]@{
SKUID = '18181a46-0d4e-45cd-891e-60aabd171b4e'
Price = 10.0
}
[SKUPrice]@{
SKUID = '6fd2c87f-b296-42f0-b197-1e91e994b900'
Price = 23.0
}
[SKUPrice]@{
SKUID = 'c7df2760-2c81-4ef7-b578-5b5392b571df'
Price = 38.0
}
)
Get-AzureADLicenseStatus -DirectoryID $directoryID -ApplicationID $applicationID -SubscriptionID $subscriptionID -KeyVaultName $keyVaultName -CertificateName $certificateName -SenderAddress $senderAddress -RecipientAddresses_normal $recipientAddresses_normal -RecipientAddresses_critical $recipientAddresses_critical -SKUPercentageThreshold_normal $skuPercentageThreshold_normal -SKUTotalThreshold_normal $skuTotalThreshold_normal -SKUPercentageThreshold_important $skuPercentageThreshold_important -SKUTotalThreshold_important $skuTotalThreshold_important -ImportantSKUs $importantSKUs -InterchangeableSKUs $interchangeableSKUs -PreferableSKUs $preferableSKUs -SKUPrices $skuPrices -AdvancedCheckups
6.2 Example report
Below example shows how a report might look like, although the example might differ from the actual result due to the manual’s style settings
Basic checkup - Products
Please check license counts for the following product SKUs and reserve additional licenses:
License type | Available count | Minimum count | Difference |
---|---|---|---|
Office 365 F3 | 96 | 100 | -4 |
Office 365 E1 | 63 | 100 | -37 |
Office 365 E3 | 21 | 100 | -79 |
Office 365 E5 | -13 | 100 | -113 |
The following criteria were used during the checkup:
- Check products with >10 total licenses
- Report normal products having both <10 licenses and <90% of their total licenses available
- Report important products having both <100 licenses and <90% of their total licenses available
Advanced checkup - Products
Please check license counts for the following product SKUs and reserve additional licenses:
License type | Enabled count | Needed count | Difference |
---|---|---|---|
Azure Active Directory Premium P1 | 200 | 670 | -470 |
Azure Active Directory Premium P2 | 100 | 170 | -70 |
Defender for Office 365 P2 | 250 | 260 | -10 |
Intune Device | 50 | 80 | -30 |
The following criteria were used during the checkup:
- Check Azure AD P1 based on groups using dynamic user membership
- Check Azure AD P1 based on applications using group-based assignment
- Check Azure AD P1/P2 based on users covered by Conditional Access
- Check Azure AD P2 based on users in scope of Privileged Identity Management
- Check Defender for Office 365 P1/P2 based on protected Exchange Online recipients
- Check Intune Device based on devices managed by Intune and used by unlicensed users
Basic checkup - Users
Please check license assignments for the following user accounts and mitigate impact:
Account | Interchangeable | Optimizable | Removable |
---|---|---|---|
user_1@example.com | Office 365 E3 | ||
user_2@example.com | Office 365 E3 Office 365 E5 |
Office 365 E3 | |
user_3@example.com | Office 365 F3 Office 365 E3 |
Potential savings when mitigating license assignment impact: 52,30 €
The following criteria were used during the checkup:
- Check accounts with any number of assigned licenses
- Report theoretically exclusive licenses as interchangeable, based on specified SKUs
- Report practically inclusive licenses as optimizable, based on available SKU features
- Report actually inclusive licenses as removable, based on enabled SKU features
Advanced checkup - Users
Please check license assignments for the following user accounts and mitigate impact:
Account | Preferable | Replaceable |
---|---|---|
user_4@example.com | N/A | Office 365 E3 |
user_2@example.com | Office 365 E1 | Office 365 E3 Office 365 E5 |
user_5@example.com | Office 365 F3 | Office 365 E1 |
Potential savings when mitigating license assignment impact: 73,40 €
The following criteria were used during the checkup, in order:
Priority | License | Account | OneDrive | Mailbox | Apps | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Enabled | Guest | Created | Active | Storage | Storage | Archive | Windows | Mac | Mobile | Web | ||
1 | N/A | - | True | - | - | - | - | - | - | - | - | - |
2 | N/A | - | - | <2021‑07‑01 | <2021‑07‑01 | - | - | - | - | - | - | - |
3 | Office 365 F3 | - | - | - | - | <2 GB | <2 GB | FALSE | FALSE | FALSE | - | - |
4 | Office 365 E1 | - | - | - | - | - | <50 GB | FALSE | FALSE | FALSE | - | - |