Sommaire
ToggleBonjour à 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 :
- Domain:ENTERPRISEPREMIUM = E5
- Domain:ENTERPRISEPACK = E3
- 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