How to tell which Office 365 services have been provisioned.

How to tell which Office 365 services have been provisioned.

  • Comments 1
  • Likes

One of the questions I encounter regularly, is;

"After assigning a license to a user in Office 365, how long will it take for the different services to be provisioned?"

Now, although I cannot give you exact numbers, there is an easy way to see which Online Services have been provisioned in Office 365 after you assign a license to a user.

In this example, I will assign an E3 license to an Office 365 user and monitor the progress of the provisioning of the different Online Services.

First, we need to connect to Office 365 using PowerShell. If you haven't installed the PowerShell tools for Office 365 yet, now would be the time to do so. The tools can be downloaded here;

After this PowerShell module has been installed, please connect to Office 365 by running these PowerShell commands:

Import-Module MSOnline
$cred = Get-Credential
Connect-MsolService -Credential $cred

Now that we are connected to Office 365, let's find a single, unlicensed, user;

PS C:\> Get-MsolUser -UnlicensedUsersOnly -MaxResults 1

UserPrincipalName              DisplayName                   isLicensed
-----------------              -----------                   ----------                  
TBremer@contoso.com             Ted Bremer                    False

Okay, so I have a user here with UPN 'tbremer@contoso.com' that does currently not have an Office 365 license.

First, let me check wich licenses we have available;

PS C:\> Get-MsolAccountSku

AccountSkuId                               ActiveUnits     WarningUnits    ConsumedUnits
------------                               -----------     ------------    -------------
contoso:RIGHTSMANAGEMENT                    1               0               1  
contoso:INTUNE_A                            25              0               0 
contoso:ENTERPRISEPACK                      25              0               5

In this case, we want to assign an E3 license (contoso:ENTERPRISEPACK) to this one user. We issue these commands:

PS C:\> Set-MsolUser -UserPrincipalName tbremer@contoso.com -UsageLocation NL

PS C:\> Set-MsolUserLicense -UserPrincipalName tbremer@contoso.com -AddLicenses contoso:ENTERPRISEPACK

Now that the user has a license, Office 365 will start provisioning the Online services. In this case; Yammer, RMS, Exchange Online, Lync Online, SharePoint Online and Office 365 Pro Plus.

We can now check the status of this provisioning by looking at the Service Status of the assigned License. This is the command you can issue to see this:

PS C:\> (Get-MsolUser -UserPrincipalName tbremer@contoso.com).Licenses[0].ServiceStatus

ServicePlan                                   ProvisioningStatus
-----------                                   ------------------
YAMMER_ENTERPRISE                             PendingInput
RMS_S_ENTERPRISE                              PendingInput
OFFICESUBSCRIPTION                            PendingInput
MCOSTANDARD                                   PendingInput
SHAREPOINTWAC                                 PendingInput
SHAREPOINTENTERPRISE                          PendingInput
EXCHANGE_S_ENTERPRISE                         PendingInput 

The "PendingInput" status means that nothing has been provisioned (yet) for this customer. We can repeat the same command and see if Office 365 has made any progress yet;

After a few seconds, we could see output that resembles this:

PS C:\> (Get-MsolUser -UserPrincipalName tbremer@contoso.com).Licenses[0].ServiceStatus

ServicePlan                                   ProvisioningStatus                         
-----------                                   ------------------
YAMMER_ENTERPRISE                             PendingInput
RMS_S_ENTERPRISE                              PendingInput
OFFICESUBSCRIPTION                            PendingInput
MCOSTANDARD                                   PendingInput
SHAREPOINTWAC                                 PendingInput
SHAREPOINTENTERPRISE                          PendingInput
EXCHANGE_S_ENTERPRISE                         Success

So now we see that the Provisioning Status for EXCHANGE_S_ENTERPRISE (Exchange Online) has changed to "Success". This indicates that Exchange Online has successfully provisioned this user.

After we give it a few more minutes (or hours) we could see this output;

PS C:\> (Get-MsolUser -UserPrincipalName tbremer@contoso.com).Licenses[0].ServiceStatus

ServicePlan                                   ProvisioningStatus
-----------                                   ------------------
YAMMER_ENTERPRISE                             PendingInput
RMS_S_ENTERPRISE                              PendingInput
OFFICESUBSCRIPTION                            Success
MCOSTANDARD                                   Success
SHAREPOINTWAC                                 Success
SHAREPOINTENTERPRISE                          Success
EXCHANGE_S_ENTERPRISE                         Success

Now, all Online Services have been successfully provisioned! We now know this user can use all the Online Services.

You can easily incorporate the ServiceStatus in your provisioning scripts. For example, if you want to modify specific settings on a users mailbox in an automated fashion, you can simply utilize this ServiceStatus to see of the specific service is available. Of course, take into account that some services might have been disabled/unlicensed for a user:

PS C:\> (Get-MsolUser -UserPrincipalName tbremer@contoso.com).Licenses[0].ServiceStatus

ServicePlan                                   ProvisioningStatus
-----------                                   ------------------
YAMMER_ENTERPRISE                             PendingInput
RMS_S_ENTERPRISE                              Disabled
OFFICESUBSCRIPTION                            Disabled
MCOSTANDARD                                   Disabled
SHAREPOINTWAC                                 PendingInput
SHAREPOINTENTERPRISE                          PendingInput
EXCHANGE_S_ENTERPRISE                         Success 

Hope this helps!

Comments
  • Fantastic! Just what i've been looking for. This must almost be the only page with that last get-msoluser command.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment