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-CredentialConnect-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 'firstname.lastname@example.org' 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 email@example.com -UsageLocation NL
PS C:\> Set-MsolUserLicense -UserPrincipalName firstname.lastname@example.org -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 email@example.com).Licenses.ServiceStatus
ServicePlan ProvisioningStatus----------- ------------------YAMMER_ENTERPRISE PendingInputRMS_S_ENTERPRISE PendingInputOFFICESUBSCRIPTION PendingInputMCOSTANDARD PendingInputSHAREPOINTWAC PendingInputSHAREPOINTENTERPRISE PendingInputEXCHANGE_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:
ServicePlan ProvisioningStatus ----------- ------------------YAMMER_ENTERPRISE PendingInputRMS_S_ENTERPRISE PendingInputOFFICESUBSCRIPTION PendingInputMCOSTANDARD PendingInputSHAREPOINTWAC PendingInputSHAREPOINTENTERPRISE PendingInputEXCHANGE_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;
ServicePlan ProvisioningStatus----------- ------------------YAMMER_ENTERPRISE PendingInputRMS_S_ENTERPRISE PendingInputOFFICESUBSCRIPTION SuccessMCOSTANDARD SuccessSHAREPOINTWAC SuccessSHAREPOINTENTERPRISE SuccessEXCHANGE_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:
ServicePlan ProvisioningStatus----------- ------------------YAMMER_ENTERPRISE PendingInputRMS_S_ENTERPRISE DisabledOFFICESUBSCRIPTION DisabledMCOSTANDARD DisabledSHAREPOINTWAC PendingInputSHAREPOINTENTERPRISE PendingInputEXCHANGE_S_ENTERPRISE Success
Hope this helps!
Fantastic! Just what i've been looking for. This must almost be the only page with that last get-msoluser command.
How to tell which Office 365 services have been provisioned.
How to create a Custom Authentication Provider for Active Directory Federation Services on Windows Server 2012 R2 - Part 2