🚀 Guide pas à pas pour obtenir en PowerShell la liste des utilisateurs ayant une licence Intune

Publié le par Charlie Dancoisne

🎯 Introduction

🌍 Dans un environnement IT, il est essentiel de pouvoir identifier rapidement les utilisateurs qui possèdent une licence Intune.

Que ce soit pour l’administration, l’audit, ou la gestion des accès, ces données sont cruciales pour assurer une bonne gouvernance des ressources.

🛠️ Microsoft Graph PowerShell est la solution moderne idéale pour extraire ces informations sans passer par l’interface graphique de Microsoft Entra ID.

Grâce à quelques commandes bien pensées, nous allons voir comment récupérer cette liste d’utilisateurs et exploiter ces données efficacement.

🔍 Ce guide se veut progressif et accessible, permettant à chacun d’apprendre étape par étape et de repartir avec un script fonctionnel.

À la fin de ce tutoriel, vous aurez une méthode claire et optimisée pour récupérer les utilisateurs ayant une licence Intune en toute autonomie.

🛠️ Prérequis et installation

Avant de commencer, voici les éléments indispensables pour exécuter correctement les commandes PowerShell et récupérer les informations sur les licences Intune.

🔹 1. Permissions nécessaires

🔑 Vous devez avoir les droits administratifs sur votre tenant Microsoft Entra ID.
📌 L’accès à Microsoft Graph API est requis, avec les permissions User.Read.All et Directory.Read.All.
⚠️ Si vous n’avez pas ces permissions, un administrateur devra accorder l’accès via un consentement.

🔹 2. Installation du module Microsoft Graph PowerShell

💻 Pour interagir avec Microsoft Graph, nous devons installer son module PowerShell :

PowerShell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force;
Install-Module -Name Microsoft.Graph -Scope CurrentUser; 


Explication rapide :

  • Set-ExecutionPolicy permet d’exécuter des scripts sans restriction.

  • Install-Module installe Microsoft Graph PowerShell pour exécuter nos commandes.

🔹 3. Connexion à Microsoft Graph

🔗 Une fois le module installé, il faut se connecter à Microsoft Graph pour récupérer les données :

PowerShell
Connect-MgGraph -Scopes "User.Read.All", "Directory.Read.All";


⚠️ Note : Lors de la première connexion, un navigateur s’ouvrira pour authentifier votre compte. Assurez-vous d’utiliser un compte avec les permissions nécessaires !

🔍 Exploration des licences disponibles

Avant d'extraire la liste des utilisateurs possédant une licence Intune, nous devons d'abord identifier le SKU (Stock-Keeping Unit) et les Service Plans qui lui sont associés. Cela nous permettra de récupérer l’ID spécifique de INTUNE_A, indispensable pour la suite du script.

📋 1. Lister les abonnements disponibles

La commande suivante permet d’afficher tous les SKU des licences attribuées à votre tenant Microsoft Entra ID :

PowerShell
Get-MgSubscribedSku;


Pourquoi c'est utile ?

  • Elle permet de voir toutes les licences actives sur votre environnement.

  • Chaque abonnement possède un SkuPartNumber qui servira de référence pour le filtrage.

🎯 2. Identifier le SKU EMSPREMIUM contenant Intune

Nous filtrons les résultats pour ne récupérer que EMSPREMIUM, qui inclut Intune :

PowerShell
Get-MgSubscribedSku | Where-Object SkuPartNumber -EQ EMSPREMIUM | Format-List;


🔎 Explication :

  • Where-Object SkuPartNumber -EQ EMSPREMIUM → Filtre uniquement EMSPREMIUM.

  • Format-List → Affiche les détails complets du SKU (ID, capacité, service plans).

🛠️ 3. Récupérer les Service Plans du SKU EMSPREMIUM

Chaque SKU contient plusieurs services, et nous voulons extraire Intune :

PowerShell
Get-MgSubscribedSku | 
Where-Object SkuPartNumber -EQ EMSPREMIUM |  
Select-Object -ExpandProperty ServicePlans; 

📝 Pourquoi c'est important ?

  • ExpandProperty ServicePlans affiche tous les services inclus dans EMSPREMIUM.

  • Intune est représenté sous la forme ServicePlanName = INTUNE_A.

✅ 4. Extraire l’ID du service plan Intune

Nous filtrons directement pour récupérer l’ID du service plan INTUNE_A, nécessaire pour notre script final :

PowerShell
$IntuneServicePlanId = (Get-MgSubscribedSku | 
Where-Object SkuPartNumber -EQ EMSPREMIUM |  
Select-Object -ExpandProperty ServicePlans |
Where-Object ServicePlanName -EQ "INTUNE_A").ServicePlanId;

🛠️ Cet ID est essentiel pour identifier les utilisateurs ayant réellement Intune activé.

🔥 Identification des utilisateurs avec une licence Intune

Maintenant que nous avons récupéré l’ID du service plan Intune, nous pouvons identifier les utilisateurs ayant réellement accès à ce service. Plutôt que de se baser uniquement sur les licences assignées (AssignedLicenses), nous allons filtrer sur les services activés (AssignedPlans), ce qui est bien plus précis.

👥 1. Lister les utilisateurs de votre tenant

Avant d’effectuer un filtrage avancé, affichons simplement tous les utilisateurs pour avoir une vue d’ensemble :

PowerShell
Get-MgUser | Select-Object DisplayName, UserPrincipalName;

✅ Cela permet de vérifier que les utilisateurs sont bien récupérés via Microsoft Graph.

 
🎯 2. Filtrer les utilisateurs ayant le service plan Intune

Nous allons utiliser l’ID du service plan INTUNE_A pour extraire uniquement les utilisateurs qui ont activement Intune :

PowerShell

💡 Prenez le temps de taper le script ci-dessus vous-même, cela vous aidera à mieux comprendre son fonctionnement".

Explication :

  • On récupère l’ID du service plan Intune (INTUNE_A).

  • On liste les utilisateurs avec Get-MgUser.

  • On vérifie leurs ServicePlans activés, pour ne récupérer que ceux ayant réellement Intune.

  • On affiche DisplayName et UserPrincipalName, pour une meilleure lisibilité.

 
⚡ 3. Affiner encore le filtrage (optionnel)

Si vous souhaitez ajouter d’autres critères, comme un filtrage sur une unité organisationnelle ou un groupe spécifique, vous pouvez modifier la requête ainsi :

PowerShell
Get-MgUser -Filter "Department eq 'IT'" | ForEach-Object { ... }

🛠️ Cela permet de cibler uniquement les utilisateurs de certains départements ou unités de votre entreprise.

 
🔎 Résolution des erreurs possibles

Si certains utilisateurs ne s’affichent pas, voici quelques vérifications à faire :
⚠️ Ils ont reçu la licence via un groupe → Utilisez Get-MgGroupMember pour voir les affectations indirectes.
⚠️ Synchronisation des données → Les mises à jour prennent parfois du temps avant d’être visibles via Microsoft Graph.
⚠️ Permissions insuffisantes → Vérifiez que vous avez bien Directory.Read.All dans Connect-MgGraph.

 

🎯 Avec cette méthode, vous avez désormais une façon claire et efficace d’identifier les utilisateurs ayant une licence Intune en PowerShell ! 🚀

💡 On passe à la dernière section avec des conseils d’optimisation et automatisation ? 🔥😃

🎯 Conclusion

Grâce à Microsoft Graph PowerShell, il est possible d’identifier facilement les utilisateurs ayant une licence Intune sans passer par l’interface graphique. Dans ce guide, nous avons vu comment :
Installer et configurer PowerShell pour interagir avec Microsoft Graph.
Explorer les licences disponibles et récupérer les détails de INTUNE_A.
Lister les utilisateurs possédant activement Intune en filtrant sur AssignedPlans.

💡 Cette méthode est essentielle pour l’administration IT, l’audit et la gestion des accès. Elle vous permet de gagner en efficacité et d’automatiser des tâches récurrentes.

📌 Prochaine étape ? Dans un prochain article, nous verrons comment créer un groupe dynamique Entra ID basé sur ces utilisateurs, afin d’optimiser encore plus la gestion des accès et des licences. 🚀

📢 Cet article vous a été utile ? Partagez-le avec vos collègues ! 🚀
👉 #PowerShell #MicrosoftGraph #Intune #EntraID #AutomatisationIT

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article