Licensing Office 365 Users with PowerShell – Licensing Helper

Introduction

Time and time again I've worked with customers that have challenges with figuring out how to correctly license users in Office 365; more so, how to construct the disabled plans licensing string. Given the challenges of general know-how required to figure out how to make these strings, I've taken the liberty of creating a friendly UI to help you on your journey.

Prerequisites

  1. I've only tested this with PowerShell version 3.0 and later, the script may require additional modification of you are using an older version
  2. MSOnline PowerShell module installed.
  3. Office 365 Admin account that has the RBAC rights run access: Get-MSOLAccountSku

How To

Download the Office 365 User Licensing Helper PowerShell script and run it in PowerShell. When you execute the script, it will first check the PowerShell version and to if the correctly PowerShell modules are installed.

If everything is validated successfully, a windows form will appear that will look like this:

In this case, I only want to the users to be licensed for Exchange Online, Skype for Business Online and SharePoint Online:

Once you have selected the licenses to enable, select "okay" and PowerShell output your selections, the disabled plans string and a sample script:

Notes

  • "Services available for this selection" indicate what plans are available for the selected SKU.
  • "Services that will be disabled" list only the plans will not be available for the users. Under "initializing" you can find the plans that you selected that will be available
  • If you select plans from more than a single SKU, the script will output separate sections per SKU.
  • Be sure to review the number of SKUs (subscriptions) available before you attempt to license users. Its important to always plan ahead and procure enough licenses to cover to current users as well as your plans mid-term organizational growth – the last think you want to is scramble to get additional licenses at the last minute.
  • If you receive an error when you execute your licensing script, be sure to review the disabled plans string (-disabledplans). In some circumstances if a plan that you are trying to keep enabled has a dependency that is being disabled, it will fail.

You can download the full script here: Licensing_Helper-v1.0