Skip to main content

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:

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 for spo 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
{
"@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
}
]
}

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.

CommandAlternative
pp card cloneNone (product is end-of-life)
pp card getNone (product is end-of-life)
pp card listNone (product is end-of-life)
pp card removeNone (product is end-of-life)
spo mail sendoutlook mail send
skype report activitycountsNone (product is end-of-life)
skype report activityusercountsNone (product is end-of-life)
skype report activityuserdetailNone (product is end-of-life)
viva engage group listviva engage community list
viva engage group user addviva engage community user add
viva engage group user removeviva 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 commandv11 command
pp chatbot getpp copilot get
pp chatbot listpp copilot list
pp chatbot removepp copilot remove
spo tenant homesite listspo homesite list
spo tenant site archivespo site archive
spo tenant site listspo site list
spo tenant site membership listspo site membership list
spo tenant site renamespo site rename
spo tenant site unarchivespo 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.

CommandOld optionNew option
entra group member addgroupDisplayNamegroupName
entra group member addidsuserIds
entra group member setgroupDisplayNamegroupName
entra group member setidsuserIds
entra m365group getincludeSiteUrlwithSiteUrl
entra m365group listincludeSiteUrlwithSiteUrl
entra pim role assignment eligibility listincludePrincipalDetailswithPrincipalDetails
entra pim role assignment listincludePrincipalDetailswithPrincipalDetails
entra pim role request listincludePrincipalDetailswithPrincipalDetails
flow listincludeSolutionswithSolutions
flow run listincludeTriggerInformationwithTrigger
graph subscription addincludeResourceDatawithResourceData
pp solution publisher listincludeMicrosoftPublisherswithMicrosoftPublishers
purview threatassessment getincludeResultswithResults
spo file moveincludeItemPermissionswithItemPermissions
spo homesite addaudiencesaudienceIds
spo homesite setsiteUrlurl
spo hubsite getincludeAssociatedSiteswithAssociatedSites
spo hubsite listincludeAssociatedSiteswithAssociatedSites
spo site listincludeOneDriveSiteswithOneDriveSites
spo term listincludeChildTermswithChildTerms
teams chat member addincludeAllHistorywithAllHistory
viva engage network listincludeSuspendedwithSuspended

What action do I need to take?

If you use any of these commands, update your scripts to reflect the new option names.