v11 Upgrade Guidance
The v11 release of CLI for Microsoft 365 introduces several breaking changes. This guide outlines those changes and the actions you may need to take to upgrade smoothly from v10 to v11.
SharePoint Embedded
Updated container type commands
We have updated all spe containertype
commands to use a new preview endpoint. This endpoint offers more capabilities and configuration options, enabling us to introduce additional SharePoint Embedded commands in the future. Once Microsoft releases a stable endpoint, we will update our commands accordingly.
As part of this change, the options available in spe containertype add
have been replaced with new ones, allowing you to configure more container-type settings than before.
The exception is the spe containertype remove
command. Due to significant limitations in the current preview API, this command has not been updated. As a result, spe containertype remove
requires different permissions compared to other spe containertype
commands. Once Microsoft addresses these limitations, we will align it with the rest.
Additionally, if you use spe container
commands and specify the container type by name (instead of ID), you will need to consent to extra permissions in your app registration. Check the documentation for each command to verify which permissions are required.
Affected commands:
Commands with new options:
Commands with updated permission scopes:
- spe containertype add
- spe containertype get
- spe containertype list
- spe container add
- spe container list
- spe container remove
- spe container recyclebinitem list
- spe container recyclebinitem restore
What action do I need to take?
- Review the documentation for each updated command to learn about the new options and permissions.
- If you use
spe containertype remove
, no action is required at this time.
SharePoint Online
Changed default for spo list view add
paged option
The spo list view add command now defaults the paged
option to true
(previously false
). This reflects common usage patterns, where most views support paging and fetch new items while scrolling.
What action do I need to take?
- If you want paged views (the most common scenario), no action is required.
- If you want static views, explicitly specify
--paged false
.
Updated behavior for spo homesite
commands
When SharePoint home sites were first introduced, only one home site was supported per tenant. Now, you can configure multiple home sites. To reflect this change, the spo homesite
commands now require a URL to identify the specific home site.
Commands affected:
Changes in detail:
- spo homesite get: The command output format has changed due to updates in the underlying API.
- spo homesite remove: This command no longer returns output. Since the previous output was limited in value, we removed it entirely.
- spo homesite set: This command now only updates existing home sites. It no longer adds a new home site if none are configured. Use the new
spo homesite add
command instead.
What action do I need to take?
- Update your scripts to always include the required
url
option. - Adjust your scripts to handle the changed output of
spo homesite get
and the lack of output forspo homesite remove
. - Use spo homesite add to add a new home site.
Updated output for spo serviceprincipal grant list
The spo serviceprincipal grant list command now uses an updated API endpoint. As a result, its output has changed.
What action do I need to take?
Update your scripts to handle the new output format, check the command docs for the new output.
SharePoint Framework (SPFx)
Updated default shell for spfx project upgrade
The spfx project upgrade command now defaults to PowerShell instead of Bash. This change reflects current usage trends, where most developers use PowerShell.
What action do I need to take?
- If you prefer Bash, explicitly set
--shell bash
. - If you use PowerShell, no action is required.
Teams
Consistent list output for teams report
commands
Previously, some teams report
commands returned an object with a value
property instead of a direct array. We've updated them to return a proper array for consistency.
Click here to compare output differences
- v10 output
- v11 output
{
"@odata.count": 1,
"value": [
{
"id": "9e8bba57-dc14-533a-a7dd-f0da6575eed1",
"correlationId": "c98e1515-a937-4b81-b8a8-3992afde64e0",
"userId": "db03c14b-06eb-4189-939b-7cbf3a20ba27",
"userPrincipalName": "richard.malk@contoso.com",
"userDisplayName": "Richard Malk",
"startDateTime": "2019-11-01T00:00:25.105Z",
"inviteDateTime": "2019-11-01T00:00:21.949Z",
"failureDateTime": "0001-01-01T00:00:00Z",
"endDateTime": "2019-11-01T00:00:30.105Z",
"duration": 5,
"callType": "ByotIn",
"successfulCall": true,
"callerNumber": "+12345678***",
"calleeNumber": "+01234567***",
"mediaPathLocation": "USWE",
"signalingLocation": "EUNO",
"finalSipCode": 0,
"callEndSubReason": 540000,
"finalSipCodePhrase": "BYE",
"trunkFullyQualifiedDomainName": "tll-audiocodes01.adatum.biz",
"mediaBypassEnabled": false
}
]
}
[
{
"id": "9e8bba57-dc14-533a-a7dd-f0da6575eed1",
"correlationId": "c98e1515-a937-4b81-b8a8-3992afde64e0",
"userId": "db03c14b-06eb-4189-939b-7cbf3a20ba27",
"userPrincipalName": "richard.malk@contoso.com",
"userDisplayName": "Richard Malk",
"startDateTime": "2019-11-01T00:00:25.105Z",
"inviteDateTime": "2019-11-01T00:00:21.949Z",
"failureDateTime": "0001-01-01T00:00:00Z",
"endDateTime": "2019-11-01T00:00:30.105Z",
"duration": 5,
"callType": "ByotIn",
"successfulCall": true,
"callerNumber": "+12345678***",
"calleeNumber": "+01234567***",
"mediaPathLocation": "USWE",
"signalingLocation": "EUNO",
"finalSipCode": 0,
"callEndSubReason": 540000,
"finalSipCodePhrase": "BYE",
"trunkFullyQualifiedDomainName": "tll-audiocodes01.adatum.biz",
"mediaBypassEnabled": false
}
]
Impacted commands:
What action do I need to take?
Update your scripts to expect an array of items.
General
Explicit option for default environments
We changed how Power Platform commands retrieve default environments for consistency.
Previously, commands would automatically return the default environment if no options were specified.
Now, you must explicitly use the --default
option.
Affected commands:
What action do I need to take?
Update your scripts to include --default
when retrieving the default environment.
Consistent output for empty list
commands
Some list
commands previously returned no output when no items were found. They now return an empty array ([]
).
Impacted command:
What action do I need to take?
- Update your scripts to handle an empty array when no results are found.
Removed commands
We removed some commands due to deprecated APIs or product end-of-life.
Command | Alternative |
---|---|
pp card clone | None (product is end-of-life) |
pp card get | None (product is end-of-life) |
pp card list | None (product is end-of-life) |
pp card remove | None (product is end-of-life) |
spo mail send | outlook mail send |
skype report activitycounts | None (product is end-of-life) |
skype report activityusercounts | None (product is end-of-life) |
skype report activityuserdetail | None (product is end-of-life) |
viva engage group list | viva engage community list |
viva engage group user add | viva engage community user add |
viva engage group user remove | viva engage community user remove |
What action do I need to take?
Update your scripts to use the alternative commands, if available.
Renamed commands for alignment
We renamed some commands to align with the latest Microsoft 365 terminology and to better reflect functionality.
v10 command | v11 command |
---|---|
pp chatbot get | pp copilot get |
pp chatbot list | pp copilot list |
pp chatbot remove | pp copilot remove |
spo tenant homesite list | spo homesite list |
spo tenant site archive | spo site archive |
spo tenant site list | spo site list |
spo tenant site membership list | spo site membership list |
spo tenant site rename | spo site rename |
spo tenant site unarchive | spo site unarchive |
What action do I need to take?
Update your scripts to use the new command names.
Renamed options for clarity
We also renamed some options to reflect product changes and make them more descriptive.
Command | Old option | New option |
---|---|---|
entra group member add | groupDisplayName | groupName |
entra group member add | ids | userIds |
entra group member set | groupDisplayName | groupName |
entra group member set | ids | userIds |
entra m365group get | includeSiteUrl | withSiteUrl |
entra m365group list | includeSiteUrl | withSiteUrl |
entra pim role assignment eligibility list | includePrincipalDetails | withPrincipalDetails |
entra pim role assignment list | includePrincipalDetails | withPrincipalDetails |
entra pim role request list | includePrincipalDetails | withPrincipalDetails |
flow list | includeSolutions | withSolutions |
flow run list | includeTriggerInformation | withTrigger |
graph subscription add | includeResourceData | withResourceData |
pp solution publisher list | includeMicrosoftPublishers | withMicrosoftPublishers |
purview threatassessment get | includeResults | withResults |
spo file move | includeItemPermissions | withItemPermissions |
spo homesite add | audiences | audienceIds |
spo homesite set | siteUrl | url |
spo hubsite get | includeAssociatedSites | withAssociatedSites |
spo hubsite list | includeAssociatedSites | withAssociatedSites |
spo site list | includeOneDriveSites | withOneDriveSites |
spo term list | includeChildTerms | withChildTerms |
teams chat member add | includeAllHistory | withAllHistory |
viva engage network list | includeSuspended | withSuspended |
What action do I need to take?
If you use any of these commands, update your scripts to reflect the new option names.