Change All Faculty and Students to Office 365 Edu Plus Licenses


We have seen many changes to Office 365 but Office 365 Education changes even more as Microsoft given more free services to education establishment worldwide.  Back in September 2015, Microsoft gave some of the E3 features to Office 365 and renamed the license from Office 365 E1 for Student (Faculty) to Office 365 Education for Student (Faculty), still free.

During the announcement around making the Office client available through Office 365, better known as Office 365 Pro Plus, Microsoft made it easy for students and teachers to get the software by asking for their email address and check their licensing records to then give them Office 365 Education.

You may have noticed this added over 1.5 million licenses to your tenant allowing you to change all your users to this new license.  This license is now called the Office 365 Education PLUS for Student (Faculty) license.

So you now have the ability to give all your students and staff Office 365 Pro Plus as you have these licenses added to your tenant, but to assign them to each of your users is time consuming and you may already have disabled other plans such as Skype for Business.  Something that can be time consuming.

The below script runs and checks to see what services are assigned to each user, removes the current license and then add the Plus license with the same disabled features as previous.  It will also check to see if their currently have a faculty or student license and ensure the right one is licensed.

You will need the Azure AD PowerShell install to make this run and also connected to your tenant (Connect-MSOLService).

$users = Get-MsolUser -MaxResults 10000 | Select-Object -property UserPrincipalName -ExpandProperty Licenses
foreach ($user in $users){

$UPN = $user.userprincipalname
$useraccount = get-msoluser -UserPrincipalName $UPN
$licensetype = $useraccount.Licenses.accountskuid
$licensesassigned = $useraccount.Licenses.servicestatus

write-host ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
write-host ~~~~ Now Starting on $UPN ~~~~
write-host "The following licenses are disabled on this account"
$disabledPlans= @()
foreach ($line in $licensesassigned) {
if ($line.ServicePlan.ServiceName -eq "SWAY" -and $line.ProvisioningStatus -eq "Disabled") {Write-Host $line.ServicePlan.ServiceName "Disabled" -BackgroundColor DarkRed}
if ($line.ServicePlan.ServiceName -eq "SHAREPOINTWAC_EDU" -and $line.ProvisioningStatus -eq "Disabled") {Write-Host $line.ServicePlan.ServiceName "Disabled" -BackgroundColor DarkRed}
if ($line.ServicePlan.ServiceName -eq "MCOSTANDARD" -and $line.ProvisioningStatus -eq "Disabled") {Write-Host $line.ServicePlan.ServiceName "Disabled" -BackgroundColor DarkRed}
if ($line.ServicePlan.ServiceName -eq "SHAREPOINTSTANDARD_EDU" -and $line.ProvisioningStatus -eq "Disabled") {Write-Host $line.ServicePlan.ServiceName "Disabled" -BackgroundColor DarkRed}
if ($line.ServicePlan.ServiceName -eq "EXCHANGE_S_STANDARD" -and $line.ProvisioningStatus -eq "Disabled") {Write-Host $line.ServicePlan.ServiceName "Disabled" -BackgroundColor DarkRed}
if ($line.ServicePlan.ServiceName -eq "SWAY" -and $line.ProvisioningStatus -eq "Disabled") { $disabledPlans +="SWAY"}
if ($line.ServicePlan.ServiceName -eq "SHAREPOINTWAC_EDU" -and $line.ProvisioningStatus -eq "Disabled") { $disabledPlans +="SHAREPOINTWAC_EDU"}
if ($line.ServicePlan.ServiceName -eq "MCOSTANDARD" -and $line.ProvisioningStatus -eq "Disabled") { $disabledPlans +="MCOSTANDARD"}
if ($line.ServicePlan.ServiceName -eq "SHAREPOINTSTANDARD_EDU" -and $line.ProvisioningStatus -eq "Disabled") { $disabledPlans +="SHAREPOINTSTANDARD_EDU"}
if ($line.ServicePlan.ServiceName -eq "EXCHANGE_S_STANDARD" -and $line.ProvisioningStatus -eq "Disabled") {$disabledPlans +="EXCHANGE_S_STANDARD"}


Set-MsolUserLicense -UserPrincipalName $UPN -RemoveLicenses $licensetype

if ($licensetype -like "*STUDENT*"){
write-host "This user has a student license"
$FullFrictionFreeLicense = Get-MsolAccountSku | Where-Object {$_.AccountSKUID -like "*STANDARDWOFFPACK_IW_STUDENT*"}

if ($licensetype -like "*FACULTY*") {
write-host "This user has a faculty license"
$FullFrictionFreeLicense = Get-MsolAccountSku | Where-Object {$_.AccountSKUID -like "*STANDARDWOFFPACK_IW_FACULTY*"}

$License = New-MsolLicenseOptions -AccountSkuId $FullFrictionFreeLicense.AccountSkuId -DisabledPlans $disabledPlans;
$info = Set-MsolUserLicense -UserPrincipalName $UPN -AddLicenses $FullFrictionFreeLicense.AccountSkuId -LicenseOptions $License


$testuseraccount = get-msoluser -UserPrincipalName $UPN
$testlicensetype = $useraccount.Licenses.accountskuid

if ($testlicensetype -like "*STANDARDWOFFPACK_IW*") { write-host "Success" -BackgroundColor DarkGreen} ELSE {write-host "FAILED" -BackgroundColor Red}
write-host "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
write-host ""


Understanding More of the Free Office 365 Benefits to Students


There are different scenarios around how the new Office 365 free offering of Office 365 Pro Plus and it is important to know this if you are a council/district, college or IT Manager for your school.

Microsoft offering Office 365 Pro Plus is great but does come with different configurations to your Office 365 tenant and knowing what they are is important to supporting your schools.

First you need to know which scenario you are in but it is important that you read each of these to fully understand what is going on.  The scenarios are based around how you currently use Office 365 and you domain name registered in Office 365.

  • First User to request license and no Office 365 tenant registered with your domain name
  • All other users request license and no Office 365 tenant registered with your domain name
  • First user to request license and domain is registered in Office 365
  • Domain is registered in Office 365 but users are not created

First User to Request License and no Office 365 Tenant created

As part of the process behind the sign up process of Office 365 for teachers and students it will check that your domain is eligible to have a license.  Microsoft have a checking process but that is currently unknown but if a user passes they can they get Office 365 Pro Plus.  What this does in the background as the user requesting the license it will create a full Office 365 Education tenant with your school domain name verified in it.

Office 365 licenses are added to that tenant however not all elements are added to the user.  The new Office 365 Education for Student license includes

License include in Office 365 Education for Student Added as part of Scenario
Yammer Yes (No effect as Yammer is not provisioned as part of Office 365 tenant creation process)
Office Online for Education Yes
SharePoint Plan 1 for EDU Yes
Exchange Online (Plan 1) No
Office 365 Pro Plus Yes
Lync Online (Plan 2) No

Users are given Office Online and SharePoint as this gives them OneDrive for Business allowing them to have 1TB of storage and will be available to them when they install Office 365 Pro Plus on their device.

Note: Because this tenant now has your school domain name added, you will not be able to add it to another tenant until it is removed.  There is a process to get admin access to this tenancy which I will post about soon.

Additional Users request and no Office 365 tenant registered

As a follow on from the above, the next users requesting eligibility will have a username created in the same Office 365 tenant and the same license assigned as above.

First User to Request License and Domain is Registered in Office 365 (UK and other EU countries, not sure about about worldwide)

In this scenario, you would have created your Office 365 tenant and registered your domain in there.  By default, when a user requests eligibility it will do a check to see if the domain is verified in Office 365 and then ask the user to log in.  If they haven’t got a username they will not be able to get Office 365 Pro Plus.  If they log in and the domain passes its eligibility tests, they will be given just the Office 365 Pro Plus part of the Office 365 Education for Student license and keep what ever they currently have.

What happens is that  Office 365 Education for Students and Office 365 Education for Faculty licenses are added to your tenant.  It adds 1 million student licenses and 500,000 faculty which you can then use to assign to all your users.

Domain is registered in Office 365 but users are not created but can be.

You might think I’ve covered this in the scenario above, however there is a setting which will allow students and teachers to create users in your tenant.  This is turned off by default but can be enabled if you want it to.

Set-MsolCompanySettings -AllowAdHocSubscriptions $true

If you have got hold of your tenant from the first time following the first two scenarios, you may want to turn this setting to false.

Set-MsolCompanySettings -AllowAdHocSubscriptions $false

You will need the Azure AD PowerShall Cmdlets to do this.