To add specific licences to users in Office 365 without using the portal, and to assign subsets of the licences available requires two things. First you need to enumerate the licences and licence service plans, then you need to assign the new plan you have created to your users. This can be performed in bulk and is repeatable unlike when using the portal.
First, enumerate the licence plans and create your own licence:
- Open Microsoft Online Services Module for Windows PowerShell and connect to the service
- $cred = Get-Credential
- Connect-MsolService -Credential $cred
- Get-MsolAccountSku | Format-Table AccountSkuId, SkuPartNumber
- The second column in this list is referenced in the next command as [SkuPartNumber]
- $ServicePlans = Get-MsolAccountSku | Where {$_.SkuPartNumber -eq “[SkuPartNumber]”}
- $ServicePlans.ServiceStatus
- This returns all the service plans
- $MyO365Sku = New-MsolLicenseOptions -AccountSkuId [tenantname:AccountSkuId] -DisabledPlans Comma_Seperated_List_From_ServicePlans_Output
Secondly you need to assign the licence to the user(s):
- Set-MsolUser -UserPrincipalName user@domain.com -UsageLocation GB
- Set-MsolUserLicense -UserPrincipalName user@domain.com -AddLicenses [tenantname:AccountSkuId] -LicenseOptions $MyO365Sku
- Repeat for any other licences you want to apply for other users or other licence options you want to apply to this user.
For reference, the SkuPartNumber’s that we discovered are:
Inside ENTERPRISEPREMIUM_NOPSTNCONF (E5 without PSTN Conferencing) Sku:
- EQUIVIO_ANALYTICS
- LOCKBOX_ENTERPRISE
- EXCHANGE_ANALYTICS
- SWAY
- ATP_ENTERPRISE
- MCOEV
- BI_AZURE_P2
- INTUNE_O365
- PROJECTWORKMANAGEMENT
- RMS_S_ENTERPRISE
- YAMMER_ENTERPRISE
- OFFICESUBSCRIPTION
- MCOSTANDARD
- EXCHANGE_S_ENTERPRISE
- SHAREPOINTENTERPRISE
- SHAREPOINTWAC
Inside ENTERPRISEPREMIUM (E5) Sku:
- EQUIVIO_ANALYTICS
- LOCKBOX_ENTERPRISE
- EXCHANGE_ANALYTICS
- SWAY
- ATP_ENTERPRISE
- MCOEV
- BI_AZURE_P2
- INTUNE_O365
- PROJECTWORKMANAGEMENT
- RMS_S_ENTERPRISE
- YAMMER_ENTERPRISE
- OFFICESUBSCRIPTION
- MCOSTANDARD
- EXCHANGE_S_ENTERPRISE
- SHAREPOINTENTERPRISE
- SHAREPOINTWAC
- MCOMEETADV (PSTN Conferencing)
- BPOS_S_TODO_2 (To Do)
- FLOW_O365_P2 (Flow)
- FORMS_PLAN_E3
- POWERAPPS_O365_P3
- STREAM_O365_E3
- TEAMS1
Inside ENTERPRISEPACK (E3) Sku:
- YAMMER_ENTERPRISE (Yammer – though you cannot apply this individually or disable it individually, so ignore it for the purposes of this script)
- OFFICESUBSCRIPTION (this is Office Professional Plus)
- MCOSTANDARD (this is Skype for Business Online)
- SHAREPOINTWAC (this is Office Web Apps)
- SHAREPOINTENTERPRISE
- EXCHANGE_S_ENTERPRISE (Exchange Plan 2)
- RMS_S_ENTERPRISE (Azure Rights Management)
- INTUNE_O365 (Mobile Device Management for Office 365)
- SWAY
- BPOS_S_TODO_2 (To Do)
- FLOW_O365_P3 (Flow)
- FORMS_PLAN_E5
- POWERAPPS_O365_P3
- STREAM_O365_E5
- TEAMS1
- MCOEV
- LOCKBOX_ENTERPRISE
- BI_AZURE_P2
- THREAT_INTELLIGENCE
- EQUIVIO_ANALYTICS
Inside Enterprise Mobility Pack (EMS)
- RMS_S_PREMIUM
- INTUNE_A
- RMS_S_ENTERPRISE
- AAD_PREMIUM
- MFA_PREMIUM
Inside ENTERPRISEPACKWITHOUTPROPLUS sku
- YAMMER_ENTERPRISE
- SHAREPOINTWAC
- SHAREPOINTENTERPRISE
- RMS_S_ENTERPRISE
- MCOSTANDARD
- EXCHANGE_S_ENTERPRISE
- INTUNE_O365
Inside DESKLESSWOFFPACK Sku:
- SHAREPOINTWAC
- SHAREPOINTDESKLESS
- EXCHANGE_S_DESKLESS
Inside EXCHANGESTANDARD sku
- INTUNE_O365
- EXCHANGE_S_STANDARD
Inside EXCHANGEENTERPRISE sku
- INTUNE_O365
- EXCHANGE_S_ENTERPRISE
Inside EXCHANGEARCHIVE Sku
- EXCHANGE_S_ARCHIVE
Inside P1 (Small Business) Tenants
- MCOLITE
- SHAREPOINTLITE
- EXCHANGE_L_STANDARD
Inside K1 – DESKLESSPACK
- SHAREPOINTDESKLESS
- EXCHANGE_S_DESKLESS
Inside K2 – DESKLESSWOFFPACK
- SHAREPOINTWAC
- SHAREPOINTDESKLESS
- EXCHANGE_S_DESKLESS
Inside P1 – LITEPACK
- MCOLITE
- SHAREPOINTLITE
- EXCHANGE_L_STANDARD
Inside E1 – STANDARDPACK
- MCOSTANDARD
- SHAREPOINTSTANDARD
- EXCHANGE_S_STANDARD
Inside E4 – ENTERPRISEWITHSCAL
- YAMMER_ENTERPRISE
- OFFICESUBSCRIPTION
- MCOSTANDARD
- SHAREPOINTWAC
- SHAREPOINTENTERPRISE
- EXCHANGE_S_ENTERPRISE
- RMS_S_ENTERPRISE
Inside PowerBI Standalone (POWER_BI_STANDALONE)
- YAMMER_ENTERPRISE
- SQL_IS_SSIM
- BI_AZURE_P1
- SHAREPOINTENTERPRISE
Inside Project Online (PROJECTONLINE_PLAN_1)
- SWAY
- SHAREPOINT_PROJECT
- SHAREPOINTWAC
- SHAREPOINTENTERPRISE
Inside Project Lite (PROJECTESSENTIALS)
- SWAY
- SHAREPOINTWAC
- SHAREPOINTENTERPRISE
- PROJECT_ESSENTIALS
Inside Academic A2 Plans
- SHAREPOINTWAC_EDU
- MCOSTANDARD
- SHAREPOINTSTANDARD_EDU
- EXCHANGE_S_STANDARD
Inside Medium Business Sku (contoso:MIDSIZEPACK)
- SHAREPOINTWAC
- OFFICESUBSCRIPTION
- EXCHANGE_S_STANDARD_MIDMARKET
- SHAREPOINTENTERPRISE_MIDMARKET
- MCOSTANDARD_MIDMARKET
PowerBI Standard (POWER_BI_STANDARD)
- BI_AZURE_P0
Visio Pro for Office 365
- VISIOCLIENT
Project Pro for Office 365
- PROJECTCLIENT
Skype for Business PSTN Conferencing
- MCOMEETADV
Skype for Business PSTN Domestic and International Calling
- MCOPSTN2
Skype for Business Cloud PBX
- MCOEV
Microsoft Dynamics CRM Online internal use rights (IUR) benefit for MPN members
- CRMIUR
Windows 10 Enterprise E5
- WIN10_PRO_ENT_SUB
- WINDEFATP
With thanks to Donte Henry (Avanade) and Tim Heeney (Microsoft). Discovered during the Office 365 MCM Class for Exchange 2010 MCM’s.
Updated June 2014 with the findings of some of those who added comments below. Note that some comments say you need to have an array for disabled plans – this is not what I find when I run the above.
Updated Feb 2015 with more licence pack data.
Updated June 2015 with more licence pack data (INTUNE_O365)
Updated Dec 2015 with E5/NOPSTN and new standalone licence skus
Updated Feb 2016 with E5 and PSTN Conferencing
Updated May 2016 with Skype for Business Cloud PBX and some Dynamics CRM
Leave a Reply