Office 365 PowerShell : Ajout de licences

Office 365 PowerShell : Ajout de licences

Bonjour à tous les lecteurs,
Voici un nouvel article sur une problématique que j’ai rencontré sur l’une de mes missions au sein de Metsys. Mon client venait de faire l’acquisition d’un certain nombre de licences Office 365 “Exchange Online Advanced Threat Protection”.

Dans un premier temps, il m’a été demandé d’ajouter ces licences aux comptes actifs ayant une licence E3 et ne faisant pas parti d’une OU spécifique. Ce cas va être traité dans le Script n°1

Dans un deuxième temps (quelques semaines plus tard ) on m’a demandé de récupérer la liste des utilisateurs actifs restant à migrer. Ce cas sera traité dans le Script n°2

Prérequis

Il faut pouvoir se connecter à office 365 en PowerShell avec la commande suivante:

Connect-MsolService

Explications : https://technet.microsoft.com/fr-fr/library/dn568015.aspx

Script n°1

#### Récupération de la liste des utilisateurs avec une licence ### 
$members = Get-MsolUser -All | Select UserPrincipalName,Licenses,IsLicensed | where {$_.isLicensed -eq $true }

### Récupération de la liste des utilisateurs à exclure de la mise a jour de licences #### 
$OUExclude = (Get-ADUser -SearchBase "OU=OU,DC=Domain,DC=com" -Filter *).UserPrincipalName

### Ajout d'un compteur ###
$N = 0

Foreach ($member in $members)
{
    If ($member.UserPrincipalName -NotIn $OUExclude)
    {
     ### Récuperation du champs de la license car $member.Licenses est une liste ### 
		
        $Licenses = ($member.Licenses).AccountSkuId

        if ($Licenses -like "Domain:ENTERPRISEPACK")
        {
		### Ajout de la licences ### 
        Set-MsolUserLicense -UserPrincipalName $member.UserPrincipalName -AddLicenses "Domain:ATP_ENTERPRISE"
		
        ### Incremantation du compteur à chaque boucles ### 
		$N++
        }
    }   
}
### Résulta du compteur de contrôle ###
$N

Script n°2

### Recuoération de la listes des utilisateurs actif ayant déja une licences ATP ### 
$Exclu = (Get-MsolUser -all | Select-object UserPrincipalName,Licenses,Islicensed | Where-Object {$_.isLicensed -eq "True" -and $_.Licenses.AccountSkuId -match '.*Domain:ATP_ENTERPRISE.*'}).UserPrincipalName
### Récupération de la listes des utilisateurs actifs ### 
$Members = Get-MsolUser -All | Select-Object UserPrincipalName,Licenses,IsLicensed | Where-Object {$_.isLicensed -eq $true }
### Mise en place d'un compteur ###
$N=0
### Comparatif des 2 listes ###
Foreach ($Member in $Members)
{
   If ($Member.UserPrincipalName -NotIn $Exclu)
    {
    $Member.UserPrincipalName
    $N++
    }
}   
$N

Compléments

Si vous souhaitez changer le nom de la licence il suffit de modifier le champs:

Domain:ENTERPRISEPACK

Voici la liste des noms en fonction des licences :

  1. Domain:ENTERPRISEPREMIUM =  E5
  2. Domain:ENTERPRISEPACK =  E3
  3. Domain:STANDARDPACK =  E1

La variable $N sert de conteur pour vérifier le nombre de licences attribuées.

Voici la commande pour voir l’état d’utilisation des licences:

Get-MsolAccountSku

A propos de l'auteur

Administrateur Système et geek dans l'âme, l'informatique j'adore ça !!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.