O365Solutions

Pour être plus efficace, rentable et adapté à leurs besoins d'affaires, un client m'a demandé de lui réaliser un script pour automatiser l'assignation des licences utilisateurs sur Office 365. Dans un environnement collégial, où tous les utilisateurs ont les mêmes licences, il est assez simple de créer un script PowerShell (voir ci-dessous) et de le programmer avec task scheduler sur un serveur de l'entreprise.

Ici le script va automatiquement associer une première licence Plan E1 qui inclus les options Exchange, Sharepoint et Lync. Ensuite, le script va rajouter la licence Office365Pro Plus qui permet aux élèves d'installer la suite Office sur leur ordinateur personnel. 

Avant de pouvoir utiliser le script ci-dessous quelques prérequis:

  • Microsoft Online Service Sign-in Assistant doit être installé sur votre serveur
  • Le Module PowerShell MsOnline (32-bit ou 64-bit) doit également être installé sur le serveur
  • Vous devez utiliser un compte Global Administrateur de votre tenant Office 365
  • Enfin, n'oubliez pas de crypter votre mot de passe

 Script.ps1
#Variables
$StudentE1Plan = "CONTOSO:STANDARDWOFFPACK_STUDENT"
$StudentProPlusPlan = "CONTOSO:OFFICESUBSCRIPTION_STUDENT"
$UsageLocation = "CA"
$AdminUsername = "Admin.Online@contoso.onmicrosoft.com"
$AdminPassword = "01234560d08c9ddf0115d1118c7a00c04fc297eb01000000624cd458111cce43914700864c926d6c0000000002000000000003660000c000000010000000d1978bc3e6f882a365ee88cf99d218a90000000004800000a000000010000000bf53352b415bdad87713c3024126198a18000000b50d34af8581989a86e484b7ef743fd0a7b7dcc6dbbe2b2e1400000065d00a033b86dcb5d44e739882db27318e17c546"

#Conversions
$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $AdminUsername,$SecurePassword

#Import MsOnline Module
Import-Module MSOnline

#Connect to Office365
Connect-MSOLService -Credential $cred

#Get Unlicenced Users on Office365
$SudentE1Options = New-MsolLicenseOptions -AccountSkuId $StudentE1Plan
$SudentProPlusOptions = New-MsolLicenseOptions -AccountSkuId $StudentProPlusPlan
$UnlicencedUsers = Get-MSOLUser -UnlicensedUsersOnly -All

#Set Location CA for CANADA and Student A2 licence for all unlicenced users
$UnlicencedUsers | ForEach-Object {
    Set-MsolUser -UserPrincipalName $_.UserPrincipalName -UsageLocation $UsageLocation
    Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses $StudentE1Plan -LicenseOptions $SudentE1Options
    Set-MsolUserLicense -UserPrincipalName $_.UserPrincipalName -AddLicenses $StudentProPlusPlan -LicenseOptions $StudentProPlusPlan
}

Facebook Like
Anonymous