What are my SKU names for Office 365 Education and how can I automate the licensing?

I was asked by several customers what are some of the new SKU names they can use and where can they find some licensing sample PowerShell scripts. I put together a few matrices covering these along with links to several sample scripts.

You also need to create a session to connect to Office 365 PowerShell. See my post here for those steps.

Here are some SKU names and PowerShell names (updated 11-17-14 to reflect several new SKU name changes):

image

     

If you want to enable or disable service plans within a particular E1 or E3 suite SKU:

     image

Sample approach to Office 365 Education licensing:

1) Create an Office 365 PowerShell login script to use for all of your Office 365 PowerShell usage scenarios.  Please see my other blog post on creating a Super Office 365 PowerShell script here.

2) Create a global admin account which is not synced via Dirsync and does not have an expiring password. Steps to create non-expiring password on a global admin account.

clip_image004

3) Obtain a CSV file of your faculty or students with DisplayName, UserPrincipalName headers. You can also dump users from Office 365 which may have been dirsynced using this script:

 #Export all O365 users to CSV File
Get-msoluser -all | Sort DisplayName | Select DisplayName, UserPrincipalName | Export-CSV o365users.csv

4) Run a student or faculty script below based on your needs:

To run a script copy the scripts below to notepad and save each one as a separate .PS1 file (PowerShell executable). Run the PS1 files from within an Office 365 Azure AD PowerShell session like the sample script provided in Step 1

Sample script to enable E1 and Student Advantage for students:

#Import CSV File of Student Accounts
$CSV=Import-csv students.csv
foreach ($line in $csv) {
write-output $line.UserPrincipalName

#These are plans we will not enable - e.g. MCOSTANDARD = Lync Online - remove -disabledplans section from script if you want to license all of A2 for students
#Refer to SKU blog for SKU and license plan names: https://aka.ms/licensescript

$disabledPlans = @()
$disabledPlans +="MCOSTANDARD"

# Create variable for student A2 standard (no Lync)
$StudentPlan = New-MsolicenseOptions -AccountSKUId tenantname:STANDARDWOFFPACK_STUDENT -DisabledPlans $disabledPlans

# Set usage location
Set-Msoluser -UserPrincipalName $line.UserPrincipalName -UsageLocation "US"

#License using Student A2 standard
Set-msoluserlicense -UserPrincipalName $line.UserPrincipalName -Addlicenses tenantname:STANDARDWOFFPACK_STUDENT -LicenseOptions $StudentPlan

#License Office 365 ProPlus Student Advantage
Set-MsolUserLicense -UserPrincipalName $line.UserPrincipalName -Addlicenses tenantname:OFFICESUBSCRIPTION_STUDENT

Sample script for enabling Faculty E1:

 #Import CSV File of A2 Faculty Accounts
$CSV=Import-csv faculty.csv
foreach ($line in $csv) {
write-output $line.UserPrincipalName

#These are plans we will not enable - e.g. MCOSTANDARD = Lync Online - remove -disabledplans section from script if you want to license all of A2 for students
#Refer to SKU blog for SKU and license plan names: https://aka.ms/licensescript
$disabledPlans = @()
#$disabledPlans +="MCOSTANDARD"

# Create variable for Faculty and Staff A2 standard (no Lync)
$FacA2Plan = New-MsolicenseOptions -AccountSKUId tenantname:STANDARDWOFFPACK_FACULTY -DisabledPlans $disabledPlans

# Set usage location
Set-Msoluser -UserPrincipalName $line.UserPrincipalName -UsageLocation "US"

#License using FACULTY A2 standard
Set-msoluserlicense -UserPrincipalName $line.UserPrincipalName -Addlicenses tenantname:STANDARDWOFFPACK_FACULTY -LicenseOptions $FacA2Plan

Sample script for enabling Faculty E3:

 

#Import CSV File of faculty and staff a3 Accounts
$CSV=Import-csv facultya3.csv
foreach ($line in $csv) {
write-output $line.UserPrincipalName

#These are plans we will not enable - e.g. MCOSTANDARD = Lync Online - remove -disabledplans section from script if you want to license all of A2 for students
#Refer to SKU blog for SKU names: https://aka.ms/licensescript
$disabledPlans = @()
#$disabledPlans +="MCOSTANDARD"

# Create variable for Faculty and Staff A3
$FacA3Plan = New-MsolicenseOptions -AccountSKUId tenantname:ENTERPRISEPACK_FACULTY -DisabledPlans $disabledPlans

# Set usage location
Set-Msoluser -UserPrincipalName $line.UserPrincipalName -UsageLocation "US"

#License using FACULTY A3
Set-msoluserlicense -UserPrincipalName $line.UserPrincipalName -Addlicenses tenantname:ENTERPRISEPACK_FACULTY -LicenseOptions $FacA3Plan

For other more advanced sample scripts on Office 365 licensing I linked to 5 very useful licensing sample scripts:

Assign Office 365 licenses based on Distribution Group membership found here (replace Enterprise SKUs with Academic SKUs listed above)

TechNet Office 365 licensing here and here. (replace Enterprise SKUs with Academic SKUs listed above)

Bulk Enable Office 365 license script samples here and by CSV file here (replace Enterprise SKUs with Academic SKUs listed above).

You can also check out a new GRAPH API sample code for Education licensing here – this has been used for very large bulk enablement scenarios e.g. more than 60,000 students, etc.