Skip to main content

v10 Upgrade Guidance

The v10 release of CLI for Microsoft 365 introduces several breaking changes. To assist you in upgrading to the latest version, we’ve outlined the changes and the actions you may need to take.

CLI

Removed command cli reconsent

Due to the removal of the PnP Management Shell app registration, the cli reconsent command had no use anymore. Therefore, we have removed this command from the CLI.

Removed showSpinner setting

Persistent issues with the spinner led to its removal from the CLI a few months ago. However, the showSpinner setting remained in the CLI configuration. In this major release, we have removed the showSpinner setting entirely.

What action do I need to take?

Remove all instances in your scripts where you reference the showSpinner setting.

Updated output of cli doctor command

In this major release, we have updated the cli doctor command output to reflect the renaming of Azure AD to Microsoft Entra ID.

The following properties have been renamed in the result:

  • cliAadAppId to cliEntraAppId
  • cliAadAppTenant to cliEntraAppTenant

What action do I need to take?

Review the documentation of the cli doctor command to see the new output structure and adjust your scripts accordingly.

Removed deprecated environment variables

In the aftermath of renaming all Azure AD-related commands and options to Microsoft Entra ID, we have removed the deprecated environment variable CLIMICROSOFT365_AADAPPID that was used to store the Microsoft Entra app ID.

What action do I need to take?

Instead of using CLIMICROSOFT365_AADAPPID, use CLIMICROSOFT365_ENTRAAPPID to store the Microsoft Entra app ID.

Updated output of status command

The command output of status has been updated. Previously, the command returned Logged out from Microsoft 365, now it will simply return Logged out.

What action do I need to take?

Please, update your scripts to reflect the new output of the status command.

Entra ID

Removed deprecated guest value from entra m365group user list command.

In the In the entra m365group user list command, it was previously possible to use the role option with the value Guest. Since this did not yield the expected output, we have removed this option.

What action do I need to take?

Remove all --role guest instances from your scripts. To list guest users of a group, use entra m365group user list in conjunction with entra user get to determine if a user is a guest.

Enhanced entra m365group set command

We've enhanced the entra m365group set command to allow retrieving a group by its displayName. Previously, groups could only be retrieved by their ID. We have replaced the original displayName option with newDisplayName. Additionally, owners/members not specified in the command will now be removed from the group. To add members/owners without affecting existing ones, use entra m365group user add.

What action do I need to take?

Ensure your scripts use newDisplayName when updating groups by displayName. Also, ensure that all intended group members and owners are specified, as any unspecified members or owners will be removed.

Removed aad options and aliasses

As part of renaming Azure AD to Microsoft Entra ID, all references to aad in command and option names have been replaced with entra. For example, aadAppId is now entraAppId.

What action do I need to take?

Update any aad references in your scripts to entra for compatibility.

SharePoint

Updated spo site appcatalog remove options

The spo site appcatalog remove command now includes a confirmation prompt to prevent unintentional deletions. To bypass this prompt, use the --force flag.

What action do I need to take?

Add --force to your scripts to bypass the confirmation prompt, if desired.

Removed deprecated wait option from spo site remove and spo tenant recyclebinitem restore

The deprecated wait option has been removed from the spo site remove and spo tenant recyclebinitem restore commands. These commands no longer return a response on success.

What action do I need to take?

Remove the --wait option and adjust scripts to not expect a response from these commands.

Removes duplicate property from spo list list command.

In the spo list list we removed the Url from the command output as it was a duplicate of the RootFolder/ServerRelativeUrl property.

What action do I need to take?

Please update your scripts not to use the Url property from the command output, instead use RootFolder/ServerRelativeUrl.

Updated commands for file and folder operations

Due to limitations with the current endpoints for file and folder operations, the commands spo file copy, spo file move, spo folder copy, and spo file move have been updated to use new endpoints. This change improves the commands' functionality and reliability. Consequently, the command inputs and outputs have been updated.

Several options previously available are no longer supported with the new commands:

  • spo file copy: Removed --resetAuthorAndCreated
  • spo file move: Removed --retainEditorAndModified
  • spo folder copy: Removed --resetAuthorAndCreated and --bypassSharedLock
  • spo folder move: Removed --retainEditorAndModified and --bypassSharedLock

In return, we have added new options to the commands:

  • spo file copy:
    • --ignoreVersionHistory: Only copy the most recent version of the file and ignore the version history.
    • --skipWait: Don't wait for the move operation to complete.
  • spo file move:
    • --includeItemPermissions: Ensure that item-level permissions are preserved during the move.
    • --skipWait: Don't wait for the move operation to complete.
  • spo folder copy and spo folder move:
    • --skipWait: Don't wait for the move operation to complete.

Previously, these commands provided no output, making it difficult to track the final name of copied or moved items, especially when using the --nameConflictBehavior rename option. With the new endpoints, each command now returns information about the destination file or folder, allowing you to seamlessly execute further commands on the moved or copied items.

What action do I need to take?

To continue using these commands, update your scripts and automation tools to reflect the new command inputs. Remove any unsupported options (--resetAuthorAndCreated, --retainEditorAndModified, and --bypassSharedLock where applicable) to ensure compatibility with the updated commands.

Updated output of spo applicationcustomizer get command

In the previous version of CLI, the command output had a Rights property that was a stringified JSON object. In this release, this has been changed to a JSON object.

What action do I need to take?

Please, check the documentation of the spo applicationcustomizer get command to see the updated output and adjust your scripts accordingly. If you are using the Rights property, there is no change you should make.

Updated spo sitescript get output

We updated the output from the spo sitescript get command. The Content property is now a JSON object instead of a stringified JSON object, so it's easier to interact with the sitescript data, even when --content is not specified.

What action do I need to take?

Adjust your scripts to expect a valid JSON object instead of a stringified object in the Content property of the output.

SharePoint Framework

Removed overwrite option from spfx project github workflow add command

Overwriting the SPFx package should be the default behavior of the continuous delivery pipeline. The overwrite option was removed from the spfx project github workflow add command.

What action do I need to take?

Please update your scripts not to use the --overwrite option.

Teams

Enhanced teams cache remove command

We enhanced the teams cache remove command to support the removal of the cache from the new Teams client. The breaking change we introduced is that it now targets new Teams clients by default.

To still support the old client, we have added the option --client, in which you can specify classic as value to remove the cache of the old Teams client.

What action do I need to take?

Add the --client option to your scripts to specify which client's cache you want to remove. Otherwise, it will attempt to remove the cache from the new client.

Removes duplicate property from 'teams tab list' command.

For the teams tab list command we removed the teamsAppTabId from the command output as it was a duplicate of the teamsApp/id property.

What action do I need to take?

Please update your scripts not to use the teamsAppTabId property from the command output. Instead, use the teamsApp/id property.

General

Aligned command names

Some command names have been updated to reflect the latest Microsoft 365 terminology. Additionally, command improvements sometimes lead to renaming for better functionality alignment.

v9 commandv10 command
entra group user addentra group member add
entra group user listentra group member list
entra group user setentra group member set
spo folder renamespo folder set
spo site renamespo tenant site rename
yammer searchviva engage search
yammer group listviva engage group list
yammer group user addviva engage group user add
yammer group user removeviva engage group user remove
yammer message addviva engage message add
yammer message getviva engage message get
yammer message listviva engage message list
yammer message removeviva engage message remove
yammer message like setviva engage message like set
yammer network listviva engage network list
yammer report activitycountsviva engage report activitycounts
yammer report activityusercountsviva engage report activityusercounts
yammer report activityuserdetailviva engage report activityuserdetail
yammer report deviceusagedistributionusercountsviva engage report deviceusagedistributionusercounts
yammer report deviceusageusercountsviva engage report deviceusageusercounts
yammer report deviceusageuserdetailviva engage report deviceusageuserdetail
yammer report groupsactivitycountsviva engage report groupsactivitycounts
yammer report groupsactivitydetailviva engage report groupsactivitydetail
yammer report groupsactivitygroupcountsviva engage report groupsactivitygroupcounts
yammer user getviva engage user get
yammer user listviva engage user list

What action do I need to take?

Update your scripts to use the new command names listed.

Aligned naming options

Just like with command names, we also have to rename options to reflect the changes in the product. We also try to make the options more descriptive and clearer to make it easier for you to use the CLI. These changes aim to make it easier for you to use the CLI.

We've updated the following options:

CommandOld optionNew option
app permission addapplicationPermission
delegatedPermission
applicationPermissions
delegatedPermissions
entra enterpriseapp addappId
appName
id
displayName
entra enterpriseapp getappId
appDisplayName
appObjectId
id
displayName
objectId
entra group member listgroupDisplayNamegroupName
entra m365group setdisplayNamenewDisplayName
entra m365group conversation post listgroupDisplayNamegroupName
entra m365group recyclebinitem listgroupDisplayNamegroupName
entra m365group user adduserNameuserNames
entra m365group user removeuserNameuserNames
entra m365group user setuserNameuserNames
outlook message getuserPrincipalNameuserName
spo contenttype field removei
fieldLinkId
contentTypeId
id
spo contenttype field seticontentTypeId

What action do I need to take?

If you use any of the commands listed above, ensure that you use the new option names.

Ensured output for list commands

We noticed that some of the list commands were not returning any output when no items were found. We've updated all list commands to return an empty array when no items are found.

The commands impacted by this change are:

What action do I need to take?

Update your scripts to expect an empty array when no items are found.

CTRL + M