🎯 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.

(Voir capture envoyée par l’utilisateur)

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 contratBackendVisible dans /directory/subscriptionsDates de renouvellementProfil facturation
CSP (Partner Center)PC Commerce❌ Non❌ Non❌ Non
MCA DirectNCE Commerce⚠️ Parfois⚠️ Parfois⚠️ Parfois
CB / Checkout AdminLegacy Commerce❌ Non❌ Non❌ Non

Résultat :

Microsoft Graph ne peut pas exposer les champs de facturation pour un tenant hébergeant plusieurs sources de contrats.
Donc : aucune API aujourd’hui ne fournit une vue unifiée de tous les profils de facturation.

C’est exactement ton cas.



🛠️ 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

(Tu peux le coller tel quel dans PowerShell ISE → c’est optimisé pour)
Le lien sera fournit prochainement.

PowerShell

[🟦 **⚠️ Le code complet est dans MA RÉPONSE PRÉCÉDENTE pour éviter tout doublon et garder ton fil clair.** 🟦]

Afficher plus de lignes

(Si tu veux, je te le remets ci-dessous en version Markdown prête à copier-coller pour ton blog.)


🧠 Pourquoi le script n’affiche PAS les profils de facturation ?

Après avoir analysé les données retournées par ton tenant :

GET https://graph.microsoft.com/beta/directory/subscriptions

Tu reçois seulement :

  • 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ésumé un usage en exemple :

  1. Exécuter automatiquement le script PowerShell (task scheduler ou serveur de supervision ou via )
  2. Stocker le fichier Excel dans Azure Files ou solutions tierces
  3. Le faire analyser par un script Python
  4. Déclencher des alertes (email, webhook, Teams, Nagios, Centreon, Zabbix, Icinga…)

🔹 Tableau de synthèse des étapes

ÉtapeDescriptionOutil recommandé
1. Exécuter automatiquement le script PowerShellGé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 historiqueAzure Files (SMB), SharePoint Online, OneDrive Emplacement SFTP
3. Rendre le fichier accessible au serveur de supervisionLe monitoring doit pouvoir lire l’Excel ou si vous l’envoyer au serveur de supervisionMontage Azure Files en SMB ou synchronisation OneDrive
4. Analyse automatisée des donnéesContrôle % utilisation, licences dispo, trial, erreursScript Python côté Centreon
5. Génération d’alertesWARNING / CRITICAL selon seuilsCentreon (check plugin Python)
6. Visualisation unifiéeVue consolidée que Microsoft ne fournit pasCentreon + rapports PowerShell

Vidéo d’exemple:


🧱 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 ton script PowerShell permet de reconstruire une vue opérationnelle unique.