Metsys Blog

Office 365 PowerShell : Ajout de licences

Cliquez pour évaluer cet article !
0 avis

Bonjour à tous,

Voici un nouvel article sur une problématique que j’ai rencontré sur l’une de mes missions au sein de Metsys. Le compte 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

Notez cet article

Vous avez aimé cet article ?

Rendez-le plus visible auprès des internautes en lui mettant une bonne note.

Cliquez pour évaluer cet article !
0 avis

Articles pouvant vous intéresser

RETEX CERT

Tout d’abord, en termes d’éthique et pour respecter la confidentialité des sujets aussi sensibles que