Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions docs/identity/users/licensing-service-plan-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,25 @@ When [managing licenses in the Azure portal](https://portal.azure.com/#blade/Mic
- **Service plans included**: A list of service plans in the product that correspond to the string ID and GUID
- **Service plans included (friendly names)**: A list of service plans (friendly names) in the product that correspond to the string ID and GUID

# Usage for Dynamic Groups
Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The heading level should be '##' instead of '#' to maintain proper document hierarchy. The existing content uses '##' for the NOTE section at line 43.

Suggested change
# Usage for Dynamic Groups
## Usage for Dynamic Groups

Copilot uses AI. Check for mistakes.

Dynamic Groups strangely does not allowing querying for licenses - you can only query for 'user.assignedPlans', and these rarely have any sensible relation to what you see within Admin Center's Licensing portal, if any relation at all. The Validation page, if you have constructed the query correctly, WILL list off the user's assignedPlans that are being queried against - but the names listed will match neither this document nor the products they have. For example, the GUID `fafd7243-e5c1-4a3a-9e40-495efcb1d3c3` is listed as PROJECT_CLIENT_SUBSCRIPTION on this table, but simply 'Microsoft Office' when queried. Even ideas that seem reasonable, like searching for Intune to distinguish Business Standard from Business Basic - will not work, as the Intune license is likely named something completely different.
Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammatical error: 'does not allowing' should be 'does not allow'.

Suggested change
Dynamic Groups strangely does not allowing querying for licenses - you can only query for 'user.assignedPlans', and these rarely have any sensible relation to what you see within Admin Center's Licensing portal, if any relation at all. The Validation page, if you have constructed the query correctly, WILL list off the user's assignedPlans that are being queried against - but the names listed will match neither this document nor the products they have. For example, the GUID `fafd7243-e5c1-4a3a-9e40-495efcb1d3c3` is listed as PROJECT_CLIENT_SUBSCRIPTION on this table, but simply 'Microsoft Office' when queried. Even ideas that seem reasonable, like searching for Intune to distinguish Business Standard from Business Basic - will not work, as the Intune license is likely named something completely different.
Dynamic Groups strangely does not allow querying for licenses - you can only query for 'user.assignedPlans', and these rarely have any sensible relation to what you see within Admin Center's Licensing portal, if any relation at all. The Validation page, if you have constructed the query correctly, WILL list off the user's assignedPlans that are being queried against - but the names listed will match neither this document nor the products they have. For example, the GUID `fafd7243-e5c1-4a3a-9e40-495efcb1d3c3` is listed as PROJECT_CLIENT_SUBSCRIPTION on this table, but simply 'Microsoft Office' when queried. Even ideas that seem reasonable, like searching for Intune to distinguish Business Standard from Business Basic - will not work, as the Intune license is likely named something completely different.

Copilot uses AI. Check for mistakes.

A better method is getting the 'servicePlans' directly for a user from Microsoft Graph. `Connect-MgGraph -Scopes Organization.Read.All` and login with admin.
`Get-MgUser -UserId 'user@domain.com' -Property AssignedPlans | Select-Object -ExpandProperty AssignedPlans | Select-Object servicePlanID, Service | fl` to pull a given user's servicePlans. You will likely not recognize any off these, but a comparison can be made between two target users to try to find an appropriate servicePlan ID to include/exclude.
Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spelling error: 'off' should be 'of'.

Suggested change
`Get-MgUser -UserId 'user@domain.com' -Property AssignedPlans | Select-Object -ExpandProperty AssignedPlans | Select-Object servicePlanID, Service | fl` to pull a given user's servicePlans. You will likely not recognize any off these, but a comparison can be made between two target users to try to find an appropriate servicePlan ID to include/exclude.
`Get-MgUser -UserId 'user@domain.com' -Property AssignedPlans | Select-Object -ExpandProperty AssignedPlans | Select-Object servicePlanID, Service | fl` to pull a given user's servicePlans. You will likely not recognize any of these, but a comparison can be made between two target users to try to find an appropriate servicePlan ID to include/exclude.

Copilot uses AI. Check for mistakes.

The syntax for this query is tricky. Below are examples:
```powershell
# includes users with specified plan
user.assignedPlans -any (assignedPlan.servicePlanId -eq "c63d4d19-e8cb-460e-b37c-4d6c34603745" and assignedPlan.capabilityStatus -eq "Enabled")
# excludes users with specified plan
-not (user.assignedPlans -any (assignedPlan.servicePlanId -eq "c63d4d19-e8cb-460e-b37c-4d6c34603745" and assignedPlan.capabilityStatus -eq "Enabled"))
```

`
Copy link

Copilot AI Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a stray backtick character on line 39 that should be removed, as it serves no purpose and may cause rendering issues in the documentation.

Copilot uses AI. Check for mistakes.



>[!NOTE]
>This information was last updated on October 29, 2025.<br/>You can also download a CSV version of this table [here](https://download.microsoft.com/download/e/3/e/e3e9faf2-f28b-490a-9ada-c6089a1fc5b0/Product%20names%20and%20service%20plan%20identifiers%20for%20licensing.csv).
><br/>
Expand Down