PI Services

Le blog des collaborateurs de PI Services

Gestion de licence Office 365 en PowerShell

 

Bonjour, nous allons voir les bases pour gérer ses licences O365 en powerShell

Connexion au tenant O365

 

Nous allons enregistrer les informations de connexion

$cred = Get-Credential

Puis nous allons nous connecter au tenant lié au informations de connexion enregistré précédemment.

Connect-MsolService -Credential $cred

 

Récupération des offres

Si vous n’avez pas d’erreur vous êtes connecté a votre tenant.

Nous allons récupérer les infos sur nos offres

Get-MsolAccountSku | Format-Table AccountSkuId

 

Nous allons ensuite listé les produits disponible dans l’offre que nous allons assigner.

$ServicePlans = Get-MsolAccountSku | Where {$_.SkuPartNumber -eq “ENTERPRISEPREMIUM_NOPSTNCONF”}
$ServicePlans.ServiceStatus

 

Voici les correspondances produits des valeurs de servicePlan pour un abonnement E5.

image

Création d’une offre personnalisée

En nous basant sur les valeurs servicesPlan, nous allons créer notre option de licence.

$MyO365Sku = New-MsolLicenseOptions -AccountSkuId piservices:ENTERPRISEPREMIUM_NOPSTNCONF -DisabledPlans LOCKBOX_ENTERPRISE,EXCHANGE_ANALYTICS,ATP_ENTERPRISE,MCOEV,INTUNE_O365,MCOSTANDARD,EXCHANGE_S_ENTERPRISE

Le paramètre –DisabledPlans permet des choisir les éléments que l’on souhaite désactiver dans l’offre.

 

Attribution de la licence

Pour des raison légal il faut spécifier le pays où a licence sera utilisé.

Set-MsolUser -UserPrincipalName adrien.gougeon@piservices.fr -UsageLocation FR

Enfin nous n’avons plus qu’a associer notre licence avec nos options.
Set-MsolUserLicense -UserPrincipalName adrien.gougeon@piservices.fr -AddLicenses piservices:ENTERPRISEPREMIUM_NOPSTNCONF -LicenseOptions $MyO365Sku

 

version script

Voici en bonus les commandes dans un script simple et fonctionnel.

$cred = Get-Credential
Connect-MsolService -Credential $cred

$MyO365Sku = New-MsolLicenseOptions -AccountSkuId piservices:ENTERPRISEPREMIUM_NOPSTNCONF -DisabledPlans LOCKBOX_ENTERPRISE,EXCHANGE_ANALYTICS,ATP_ENTERPRISE,MCOEV,INTUNE_O365,MCOSTANDARD,EXCHANGE_S_ENTERPRISE

$users=Get-MsolUser -Synchronized -UnlicensedUsersOnly | where {$_.UserPrincipalName -notlike 'adm_*' -and $_.UserPrincipalName -like '*@piservices.fr'} | select -Property UserPrincipalName

Foreach ($user in $users) {

    Set-MsolUser -UserPrincipalName $user.UserPrincipalName -UsageLocation FR

    Set-MsolUserLicense -UserPrincipalName $user.UserPrincipalName -AddLicenses piservices:ENTERPRISEPREMIUM_NOPSTNCONF -LicenseOptions $MyO365Sku


}

Nous avons la commande :

Get-MsolUser -Synchronized -UnlicensedUsersOnly | where {$_.UserPrincipalName -notlike 'adm_*' -and $_.UserPrincipalName -like '*@piservices.fr'} | select -Property UserPrincipalName

Cette commande permet d’obtenir les utilisateurs qui sont synchronisés et sans licence. le résultat est ensuite filtré pour enlever les comptes admins et cibler le domaine que nous voulons manipuler et enfin nous ne prenons que le champ UserPrincipalName car c’est le seul qui nous sert pour le script.

Bonus

Voici en bonus des commandes utiles pour améliorer vos scripts.

Pour sélectionner toutes les entrée d’une OU sans les sous-OU et mettre une valeur dans extensionAttribute15.

Get-ADUser -Filter * -SearchBase "VOTRE OU" -SearchScope 1 -Properties extensionAttribute15 | Set-ADUser –Add @{extensionAttribute15="AzureAdSync"}

Cette commande peut vous être utile si vous faites de la synchro d’AD on-premise avec azure AD connect

Ajouter un commentaire

Loading