How to Restore the Service Plan for a Microsoft 365 App
Reasons Exist to Disable Service Plans and Enable Service Plans
Plenty of articles are available on the internet to explain how to disable a service plan from a Microsoft 365 license. In this respect, a service plan controls a component within a Microsoft 365 product (SKU), such as Exchange Online, Sway, Microsoft Bookings, or Viva Engage. Some Microsoft products include many service plans. For instance, Office 365 E3 spans 38 service plans, which are referred to as apps when viewing user account details in the Microsoft 365 admin center. Some apps, like OneDrive for Business, are practically impossible to remove because of dependencies that exist across different Microsoft 365 components.
It’s common for organizations to disable service plans when they decide that there’s no need for an app. After Microsoft renamed Yammer to be Viva Engage, they introduced a new Viva Engage core service plan, and quite a few organizations promptly disabled the new plan because they never used Yammer and had no plans to use Yammer. Another example is Clipchamp, a very competent video editing application that’s part of Office 365 and higher licenses. Although Clipchamp offers a more comprehensive array of options to edit videos than is found in the Stream app, I’ve heard companies say that they have no interest in users creating and editing videos. Clipchamp is useful to the corporate marketing team, but no one else needs it, so the organization disables the Clipchamp service plan for most accounts.
Disable a Service Plan
To disable a service plan, uncheck the app from the set listed for the user account in the Microsoft 365 admin center. In Figure 1, the Microsoft Bookings service plan is disabled. To disable Clipchamp, all that’s required is to uncheck the entry for the Microsoft Clipchamp service plan.
Figure 1: Where to enable service plans in the Microsoft 365 admin center
Using the admin center is fine to disable or enable a service plan for just a few accounts. Automating the process with PowerShell is better when dealing with more accounts.
To disable a service plan, we need to know the identifier for the product SKU assigned to the user account and the identifier for the service plan. The easiest way to find this information is to consult Microsoft’s product names and identifiers page. Open the page and download the CSV file (frequently used by scripts such as the Microsoft 365 licensing report). Then search the file for the product name (like Office 365 E3) to find the SKU identifier (6fd2c87f-b296-42f0-b197-1e91e994b900). The service plans included in the SKU are also listed, and you should also be able to find the service plan identifier for the app you want to remove.
However, the August 19, 2024, version of the file doesn’t list Clipchamp for either Office 365 E3 or E5. Omissions like this sometimes happen, but it’s easy to find the service plan identifier for Clipchamp in other product SKUs. The identifier is a1ace008-72f3-4ea0-8dac-33b3a23a2472.
To confirm that these identifiers are correct, run the Get-MgUserLicenseDetail cmdlet against an account that you know has an Office 365 E3 license and check for a Clipchamp service plan:
Get-MgUserLicenseDetail -UserId Ben.James@office365itpros.com | Where-Object {$_.SkuId -eq ‘6fd2c87f-b296-42f0-b197-1e91e994b900’} | Select-Object -ExpandProperty ServicePlans | Where-Object {$_.ServicePlanName -like “*ClipChamp*”}
AppliesTo ProvisioningStatus ServicePlanId ServicePlanName
——— —————— ————- —————
User PendingProvisioning a1ace008-72f3-4ea0-8dac-33b3a23a2472 CLIPCHAMP
The Set-MgUserLicense cmdlet manages license details and takes two arrays as input parameters. The first array (AddLicenses) hold details of licenses (SKUs) to add or modify. The second (RemoveLicenses) holds details of licenses to remove. In this case, we want to modify a license that the user account already has, so we’ll use the AddLicenses array to specify the SKU to update along with the service plan that we wish to disable. An account might already have some disabled service plans for the target SKU, so the first step is to find if any exist and store the identifiers for any previously-disabled service plans in an array. It’s critical to check for previously-disabled service plans as otherwise Entra ID will reenable these plans if you run Set-MgUserLicense to disable other plans.
[array]$DisabledServicePlans = Get-MgUserLicenseDetail -UserId Ben.James@office365itpros.com | Where-Object {$_.SkuId -eq ‘6fd2c87f-b296-42f0-b197-1e91e994b900’} | Select-Object -ExpandProperty ServicePlans | Where-Object {$_.ProvisioningStatus -eq “Disabled”} | Select-Object -ExpandProperty ServicePlanId
Now add the service plan for Clipchamp to the array:
$DisabledServicePlans += “a1ace008-72f3-4ea0-8dac-33b3a23a2472”
Finally, run the Set-MgUserLicense cmdlet to update the Office 365 E3 SKU:
Set-MgUserLicense -UserId Ben.James@Office365itpros.com -AddLicenses @{SkuId = ‘6fd2c87f-b296-42f0-b197-1e91e994b900’; DisabledPlans = $DisabledServicePlans} -RemoveLicenses @()
Enable Service Plans for Microsoft 365 Licenses
To restore a service plan, use the same code to find the set of disabled service plans, remove the service plan identifier from the array, and run Set-MgUserLicense. This code restores Clipchamp to the set of service plans available to the user:
$DisabledServicePlans = $DisabledServicePlans -ne “a1ace008-72f3-4ea0-8dac-33b3a23a2472”
Set-MgUserLicense -UserId Ben.James@Office365itpros.com -AddLicenses @{SkuId = ‘6fd2c87f-b296-42f0-b197-1e91e994b900’; DisabledPlans = $DisabledServicePlans } -RemoveLicenses @()
If you don’t fetch details of disabled service plans and pass an empty array, Entra ID will restore all disabled service plans. This might or might not be what you intended.
Understand the Identifiers
Disabling and restoring service plans for Microsoft 365 licenses through PowerShell might seem complicated. In reality, it’s simple, once you understand how product (SKU) identifiers and service plans work.
Need more advice about how to write PowerShell for Microsoft 365? Get a copy of the Automating Microsoft 365 with PowerShell eBook, available standalone or as part of the Office 365 for IT Pros eBook bundle.