Home » Microsoft Teams » Microsoft Teams & Skype for Business Online Back-end Provisioning Monitor Script

Microsoft Teams & Skype for Business Online Back-end Provisioning Monitor Script

Working in the Cloud should be fast. But sometimes you just got to wait it out. One of the biggest pain points for me is the lag between licensing a user in Office 365 and Skype for Business Online to complete its back-end provisioning so I can actually start assigning policies and phone number etc.

This delay can range from a minimum of 30 minutes to 24 hours! There is nothing I can do to speed it up and the biggest challenge is providing a predictable experience to the end user. Typically, I want to license and then do something in Skype. With this delay, I am not going to sit around and keep checking when I can actually complete the task. I’m going to do other stuff.

The problem with this is that I am introducing a lag between the back-end ready state and bringing myself back to this task. This could lead to end user realising functionality before I have tailored it to their needs.

Skype Online applies to Microsoft Teams as well. So this is needed if you’re deploying Teams too. Skype for Business Online gives out two properties, assigned plan and provisioned plan. You can access these properties by calling the user object out of PowerShell. Assigned Plan is the core functionality we have given the user based on their Office 365 licenses and Provisioned Plan is the current plan that has been provisioned. There may / will be a drift between these 2 properties when a user is first licensed. This is what takes time to get into sync.

Having been tired of this problem, I created a script that monitors the license provision in Office 365 every 5 minutes, if all assigned Skype licenses return a success the script will continue to Skype Online and check the provisioned plan against these licenses. The script will continue to check the provisioned plan every 5 minutes until all assigned plans return a success. Upon which I can then add my in band configuration commands such as Grant-CsTeamsMeetingPolicy etc.

This now means all I need to do is enter the user’s UPN into the script and hit enter. Simply call the script from the PS window

 .\SkypeProvisioningStatus.ps1 -upn user@mvc-labs.com

1 Comment

  1. I still don’t understand why microsoft would purposely allow users to be migrated to the cloud immediately then tell those same users they need to wait 24 hours for their cloud voice licenses to finish provisioning.

    why wouldn’t they just run a checker script like this on the back end and hold the user on-prem where the user still has full functionality until the provisioning completes, then automatically process the user move only at such time that the tenant admin can immediately apply policies and configs?

    I’m sure it’s just bad optics for microsoft to say they can’t migrate users immediately vs just doing an immediate partial move then waiting on licensing, but I’m no longer interested in playing nice with microsoft so when my executive sponsor asks me why they have to go up to 24 hours without the ability to create a meeting with dial-in numbers I’m going to just tell them it’s because microsoft is clueless and if they want seamlessly tailored migrations they’re going to have to do it on prem where I can control the process.

Leave a Reply to rob Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: