How to assign a license in Office 365 using powershell?

Before you could assign a license using PowerShell, you need to connect to Microsoft Azure AD.

Once you are connected, let's first see what sort of license your organization has purchased or available for assigning to users.

$AccountSku = Get-MsolAccountSku  

Now you can return the "$AccountSku" to see what are license type available.

AccountSkuId                         ActiveUnits WarningUnits ConsumedUnits
------------                         ----------- ------------ -------------
<tenant>:ENTERPRISEPACKWITHOUTPROPLUS 20000        7000        10000
<tenant>:ENTERPRISEPACK               25000       14000        13000

If your organization has only one type of license, then you will only see one entry.
Now let's find out what product are available.

$AccountSku[0].ServiceStatus
$AccountSku[1].ServiceStatus

We can run the below command to return the product type.

$AccountSku[0].ServiceStatus

ServicePlan           ProvisioningStatus
-----------           ------------------
SWAY                  Success
YAMMER_ENTERPRISE     Success
SHAREPOINTWAC         Success
SHAREPOINTENTERPRISE  Success
RMS_S_ENTERPRISE      Success
MCOSTANDARD           Success
EXCHANGE_S_ENTERPRISE Success

$AccountSku[1].ServiceStatus

ServicePlan           ProvisioningStatus
-----------           ------------------
PROJECTWORKMANAGEMENT Success
SWAY                  Success
YAMMER_ENTERPRISE     Success
RMS_S_ENTERPRISE      Success
OFFICESUBSCRIPTION    Success
MCOSTANDARD           Success
SHAREPOINTWAC         Success
SHAREPOINTENTERPRISE  Success
EXCHANGE_S_ENTERPRISE Success

we can see Provisioningstatus is set to Success, so it means, that those products could be assigned to a user.

Assigning License to a User

Now, lets assign a license to User Account.

Before we can assign the license, we will have to setup the usage location, below are the PowerShell command which can be run to set the Usage Location.

Usage location is where you want the user mailbox to be setup in office365, please make sure to set accordingly.

 
$UPN="Sunil@<tenant>.onmicrosoft.com"

Set-MsolUser -UserPrincipalName $UPN -UsageLocation US

Set-MsolUserLicense -UserPrincipalName $upn -AddLicenses <tenant>:ENTERPRISEPACKWITHOUTPROPLUS
 

Now, if you want to assign, all the product available in the License, then we are all set with the License assignment by running the above command, but if we want to disable a few of the products, then we have to run the below cmd as well.

Lets say we just want to enable only the Exchange and Skype for Business for User.

# Disabling office online, Sharepoint, Sway and Yammer
$LP = New-MsolLicenseOptions -AccountSkuId <tenant>:ENTERPRISEPACKWITHOUTPROPLUS `
-DisabledPlans SWAY, YAMMER_ENTERPRISE, SHAREPOINTWAC, SHAREPOINTENTERPRISE

Set-MsolUserLicense -UserPrincipalName $upn -LicenseOptions $LP

After running the above command we can verify the license assignment, by running the below cmd.

(Get-MsolUser -UserPrincipalName "Sunil@<tenant>.onmicrosoft.com").Licenses.ServiceStatus

Comments