🎯 Objectif Revue des Licence Office 365
Microsoft propose plusieurs interfaces pour consulter les licences Microsoft 365 :
- Centre d’administration > Facturation > Licences
- Centre d’administration > Facturation > Vos produits
- Commerce > Billing Accounts (selon type de contrat)
Cependant, selon votre type de tenant et vos contrats, vous constaterez rapidement une limite gênante :
❗ Il n’existe pas de vue unifiée regroupant toutes les licences, toutes les dates de renouvellement et tous les profils de facturation pour un même tenant.
C’est particulièrement vrai pour les organisations qui, comme la mienne, utilisent plusieurs sources de facturation :
- 📦 CSP via différents partenaires
- 🏢 MCA (Microsoft Customer Agreement direct)
- 💳 Achats ponctuels par carte bancaire dans le centre d’administration
Résultat :
➡️ Les licences sont visibles,
➡️ Mais les dates de renouvellement et les profils de facturation sont dispersés dans plusieurs interfaces.
📌 Exemple concret : le centre d’administration Microsoft 365
Vue “Licences”
On voit bien les produits, les quantités, les licences affectées/diponibles.
Mais :
➡️ Pas de date de renouvellement
➡️ Pas d’identification du contrat associé
➡️ Pas de regroupement par fournisseur

Vue “Vos produits”

C’est ici que Microsoft affiche les dates de renouvellement…
… mais uniquement pour un seul compte de facturation à la fois.
Or dans un tenant avec plusieurs contrats, vous verrez :
- un compte MCA,
- un compte MOSA,
- éventuellement un MCPA,
- un ou plusieurs contrats CSP,
- des achats ponctuels CB du centre d’administration.
➡️ Aucun écran ne regroupe toutes les dates pour tous les comptes.
➡️ Il faut cliquer sur chaque compte séparément pour voir les produits associés.
❗ Pourquoi Microsoft ne propose pas une vue unifiée ?
Parce que les backend de facturation Microsoft ne sont pas unifiés :
| Type de contrat | Backend | Visible dans /directory/subscriptions | Dates de renouvellement | Profil facturation |
| CSP (Partner Center) | PC Commerce | ❌ Non | ❌ Non | ❌ Non |
| MCA Direct | NCE Commerce | ⚠️ Parfois | ⚠️ Parfois | ⚠️ Parfois |
| CB / Checkout Admin | Legacy Commerce | ❌ Non | ❌ Non | ❌ Non |
Résultat :
Microsoft Graph peut retourner des informations de facturation (billingProfile, billingAccount), mais uniquement pour certains types de contrats.
Dans un tenant multi-sources (CSP + MCA + achats directs), ces champs ne sont pas exposés, donc aucune API ne peut fournir cette information de manière unifiée
🛠️ Script PowerShell complet prêt à l’emploi
Ce script :
- vérifie les modules nécessaires (ImportExcel + Microsoft.Graph),
- télécharge le CSV officiel Microsoft pour les noms conviviaux,
- récupère les licences via Graph,
- calcule usage + barre de progression,
- exporte un Excel lisible,
- fonctionne parfaitement dans PowerShell ISE.
🔧 La solution : créer sa propre vue unifiée via PowerShell + Microsoft Graph
Même si Microsoft ne donne pas les informations de facturation, il est possible d’obtenir :
✔️ la liste complète des licences
✔️ le nombre total / utilisé / disponible
✔️ les SKU exacts
✔️ le statut (actif, désactivé, trial, etc.)
✔️ les dates envoyées par l’API (si ton tenant les expose)
✔️ un fichier Excel lisible et exploitable
L’idée est de reconstruire une vue opérationnelle : quelles licences j’ai ? combien j’en utilise ? quand expirent-elles (si dispo) ?


Script complet
PowerShell
[🟦 **⚠️ Le code complet Sera fournit prochainement et publier ici .** 🟦]
🧠 Pourquoi le script n’affiche PAS les profils de facturation ?
Après avoir analysé les données retournées sur plusieurs tenants:
GET https://graph.microsoft.com/beta/directory/subscriptions
Nous recevons les champs :
- skuPartNumber
- totalLicenses
- consumedUnits
- isTrial
- createdDateTime
- nextLifecycleDateTime
- commerceSubscriptionId (technique Commerce, exploitable ailleurs)
❌ Aucun champ :
- billingAccount
- billingProfile
- billingProvider
- billingType
- billingCycle
C’est normal avec un tenant multi-sources (CSP + MCA + CB).

Microsoft ne fusionne pas ces données → elles ne sont pas exposées via Graph.
Donc aucun script PowerShell au monde ne peut afficher cette information tant qu’elle n’est pas publiée par Microsoft.
📊 Résultat obtenu grâce au script
- Une vue 100 % exhaustive de toutes les licences (CSP + MCA + CB)
- Un export Excel propre, triable, filtrable
- Une vision claire de l’usage et du stock réel
- Un tableau exploitable pour reporting / budget / audits
Cela compense largement les lacunes de l’interface Microsoft 365.
🛡️ Supervision automatisée des licences Microsoft 365
(Export PowerShell → Stockage Azure Files → Analyse Python → Alertes)

Dans la plupart des entreprises, les licences Microsoft 365 sont critiques :
si vous manquez de licences, si une offre expire, ou si vous êtes en surconsommation, cela impacte directement l’activité et la conformité.
C’est pourquoi il est utile d’aller au‑delà du simple rapport ponctuel et de mettre en place une supervision automatisée.
Cette partie résume un usage en exemple :
- Exécuter automatiquement le script PowerShell (task scheduler ou serveur de supervision ou via )
- Stocker le fichier Excel dans Azure Files ou solutions tierces
- Le faire analyser par un script Python
- Déclencher des alertes (email, webhook, Teams, Nagios, Centreon, Zabbix, Icinga…)
🔹 Tableau de synthèse des étapes
| Étape | Description | Outil recommandé |
|---|---|---|
| 1. Exécuter automatiquement le script PowerShell | Génération du rapport licences (CSV/Excel) | Azure Automation (cloud) ou Planificateur Windows ou autre orchestrator |
| 2. Stocker le fichier généré | Centraliser le rapport pour supervision et historique | Azure Files (SMB), SharePoint Online, OneDrive Emplacement SFTP |
| 3. Rendre le fichier accessible au serveur de supervision | Le monitoring doit pouvoir lire l’Excel ou si vous l’envoyer au serveur de supervision | Montage Azure Files en SMB ou synchronisation OneDrive |
| 4. Analyse automatisée des données | Contrôle % utilisation, licences dispo, trial, erreurs | Script Python côté Centreon |
| 5. Génération d’alertes | WARNING / CRITICAL selon seuils | Centreon (check plugin Python) |
| 6. Visualisation unifiée | Vue consolidée que Microsoft ne fournit pas | Centreon + rapports PowerShell |

🧱 Conclusion
En 2026 :
- Microsoft Graph donne une vision complète des licences,
- mais pas une vision complète des contrats ni de la facturation dans un tenant multi-sources.
- donc les interfaces “Vos produits” et “Licences” ne peuvent pas afficher tout ensemble,
- mais un script PowerShell permet de reconstruire une vue opérationnelle unique.
Commentaires récents