Enabling individual services with PowerShell

​Changing licenses in Office 365 is usually something you do upon provisioning new users, and when migrating between different SKUs. Most of the other time you dont even think about it. But what if you have taken a different approach in onboarding your users, by activating only subset of the Office 365 features at a time? For example, if you have moved Lync to the cloud, but are waiting for all sites/libraries to be migrated before you start using SharePoint Online? Or simply don’t want users to play with RMS, etc?

In such case, you have probably already granted the users the E3 SKU license, but disabled some of the services. How you can do this via PowerShell is explained in numerous blog posts, such as this one. So how about enabling those services back? What I first though of is to remove the whole SKU and assign it back without any disabled services. That will work, but surely there is a better way? Indeed there is! All we need to do is simply ‘refresh’ the license options for the user. That is, create a new licensing option with all the services enabled and rerun the Set-MsolUserLicense cmdlet. Here are the steps:

  • Get the SKU in question using the Get-MsolAccountSku cmdlet
  • Prepare the options variable:
$options = New-MsolLicenseOptions -AccountSkuId 'tenant:ENTERPRISEPACK'
  • Here’s what the license options looked like before running the cmdlet in my case:
ServicePlan                                                                               ProvisioningStatus
-----------                                                                               ------------------
YAMMER_ENTERPRISE                                                                         PendingInput
RMS_S_ENTERPRISE                                                                          PendingInput
OFFICESUBSCRIPTION                                                                        Success
MCOSTANDARD                                                                               Disabled
SHAREPOINTWAC                                                                             Success
SHAREPOINTENTERPRISE                                                                      Success
EXCHANGE_S_ENTERPRISE                                                                     Disabled
  • Here’s the cmdlet I run in order to ‘refresh’ the license options:
Set-MsolUserLicense -UserPrincipalName user@domain.com -LicenseOptions $options
  • And here is the end result:
ServicePlan                                                                               ProvisioningStatus
-----------                                                                               ------------------
YAMMER_ENTERPRISE                                                                         PendingInput
RMS_S_ENTERPRISE                                                                          PendingInput
OFFICESUBSCRIPTION                                                                        Success
MCOSTANDARD                                                                               Success
SHAREPOINTWAC                                                                             Success
SHAREPOINTENTERPRISE                                                                      Success
EXCHANGE_S_ENTERPRISE                                                                     Success

Note that I run the Set-MsolUserLicense without specifying any SKU. The license options will be matched against the currently assigned SKU. If you specify it using the -AddLicenses parameter, the cmdlet will throw an error. As a next step, you can of course run this agains all users or a subset of them and complete the task in a matter of minutes.

While we are still on the subject of licenses, in case you want to switch between different SKUs while preserving the license options check out this blog.

This entry was posted in Office 365, PowerShell. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *