La gestion des licences Office 365 par PowerShell

Bonjour à tous,

Dans cet article, nous allons évoquer la gestion des licences par Powershell. En effet, la première porte pour accéder aux applications Office 365 est de fournir à vos utilisateurs une licence et de configurer les options disponibles sur celle-ci. Cette partie est par conséquent très importante dans l’administration de votre tenant.

Les licences disponibles pour votre tenant sont visibles via le portail d’administration, menu Facturation puis Licences :

blog ai3 File01-1024x599 La gestion des licences Office 365 par PowerShell

 

La colonne Valide(s) nous indique le nombre total de licences disponibles et la colonne Affectée(s) le nombre de licences utilisées.

Voyons voir cette scène au ralenti et trouvons maintenant ces informations via « Coquillage Puissant » :

blog ai3 File02-300x67 La gestion des licences Office 365 par PowerShell

 

La commande Get-MsolAccountSku nous permet de visualiser nos différentes licences.

Si nous mettons cette information dans une variable ($Sku = Get-MsolAccountSku), celle-ci sera un tableau avec autant de lignes que de licences.

Nous pouvons aisément réaliser un script pour extraire de manière quotidienne le statut des licences :

blog ai3 File03-1024x272 La gestion des licences Office 365 par PowerShell

 

Maintenant que nous avons nos licences, il est temps de voir les applications liées à celles-ci.

En effet, ces licences contiennent un ensemble d’applications comme le montre la capture suivante par le GUI :

blog ai3 File04 La gestion des licences Office 365 par PowerShell

Les mêmes données en Powershell :

blog ai3 File05 La gestion des licences Office 365 par PowerShell

Cette commande nous permet de visualiser les différents éléments d’une licence ainsi que leur statut.

Le  statut « PendingActivation » sur le composant « INTUNE_O365 » indique que l’application doit être dans un premier temps activée pour cet utilisateur par un Administrateur.

Maintenant rentrons dans le vif du sujet afin d’affecter des licences en masse … (Jeanne si tu nous écoutes 😉 )

Tout d’abord, avant d’affecter une licence à un utilisateur, il est impératif de définir l’emplacement auquel il appartient. Cela se passe via la cmdlet set-msoluser :

 blog ai3 File06-1024x74 La gestion des licences Office 365 par PowerShell

blog ai3 File07-1024x86 La gestion des licences Office 365 par PowerShell

« FR » pour France, « GB » pour United Kingdom, « DE » pour Allemagne, …

Une fois l’emplacement défini, affectons maintenant une licence via la cmdlet suivante set-msoluserlicense.

Dans l’exemple ci-dessous, nous attribuons une licence complète (avec toutes ces applications) à notre utilisateur :

blog ai3 File08-1024x267 La gestion des licences Office 365 par PowerShell

Pour désactiver certaines options d’une licence, il est nécessaire de définir en amont une variable qui contiendra les éléments à ne pas inclure.

Cette variable sera ensuite utilisée en paramètre (« -LicenseOptions » ) de la cmdlet set-msoluserlicense :

blog ai3 File09-1024x313 La gestion des licences Office 365 par PowerShell

Et hop, voici le résultat :

blog ai3 File10-1024x290 La gestion des licences Office 365 par PowerShell

Ou par le GUI :

blog ai3 File11 La gestion des licences Office 365 par PowerShell

 

Cool, non ? Avec ces différentes cmdlet, nous pouvons activer en masse ou alors modifier les options des différentes licences !

Maintenant, si nous souhaitons lister et exporter tous les utilisateurs et leurs licences associées, voici une fonction et sa cmdlet que nous pouvons utiliser :

Function LicenceAll ($UPN) {Get-MsolUser -UserPrincipalName $UPN | Select Licenses | % {$_.Licenses | % {$SkuPartNumber = $_.AccountSku.SkuPartNumber;$_.ServiceStatus | Select @{N=’UPN’;E={$UPN}},@{N=’LicenseType’;E={$SkuPartNumber}},@{N=’ServicePlan’;E={$_.ServicePlan.ServiceName}}, ProvisioningStatus}}}

Get-MsolUser -All | ? {$_.IsLicensed -eq « TRUE »}| % {LicenceAll $_.UserPrincipalName} | Export-Csv c:\temp\ToutesLesLicences.csv -Encoding Unicode -NoTypeInformation -Delimiter « ; »

blog ai3 File12-1024x95 La gestion des licences Office 365 par PowerShell

 

L’extraction au format csv nous donnera sous Excel les valeurs suivantes :

blog ai3 File13 La gestion des licences Office 365 par PowerShell

En attendant un prochain article, Que la force soit avec vous 😉

James MAILLET

AI3

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.