Points clés
- Utilisez Microsoft Graph PowerShell pour exporter les noms, types, niveaux de visibilité et dates de création des groupes Microsoft 365.
- Combinez Exchange Online PowerShell et les données Graph pour rendre compte avec précision de la propriété et des membres des groupes.
- Exploitez l’API Microsoft Graph Reports pour suivre l’activité des groupes et repérer les groupes inactifs ou orphelins sur des périodes de 7, 30 ou 90 jours.
- Automatisez le reporting Microsoft 365 avec l’authentification application seule, des tâches PowerShell planifiées et des exports CSV/JSON pour un suivi régulier.
- Standardisez les rapports Microsoft 365 multi-tenant grâce à des boucles de connexion scriptées, des journaux horodatés et un reporting unifié pour toutes les entreprises.
Le reporting des groupes Microsoft 365 aide les administrateurs à suivre la propriété, les membres, la visibilité et l’utilisation des groupes dans Teams, SharePoint, Planner et Outlook.
Les anciennes méthodes de reporting n’offrent tout simplement pas l’automatisation et la profondeur dont les administrateurs ont besoin aujourd’hui. C’est pourquoi de plus en plus d’entreprises se tournent vers des outils comme Graph PowerShell et les endpoints Graph Reports pour générer leurs rapports.
Ces plateformes automatisent les tâches répétitives, comme la collecte des données d’appartenance, et surtout, elles fournissent des jeux de données bien plus riches.
Dans ce guide, nous vous montrons comment automatiser le reporting des groupes Microsoft 365 avec PowerShell et Graph Reports.
Automatiser les rapports sur les groupes Microsoft 365 avec PowerShell
PowerShell et Microsoft Graph sont les deux outils indispensables pour mettre en place un reporting des groupes Microsoft 365 évolutif et sécurisé.
📌Prérequis
- Les modules Microsoft Graph PowerShell SDK et Exchange Online
- Une inscription d’application Azure configurée avec les portées d’API Reports.Read.All et Group.Read.All
- Des identifiants d’application ou délégués, stockés de manière sécurisée dans un Key Vault ou un fichier JSON chiffré
- Des autorisations d’administrateur pour accéder au reporting du tenant Microsoft 365 et à Exchange Online
Méthode 1 : réaliser un inventaire complet des groupes avec Microsoft Graph PowerShell
📌Cas d’utilisation : cette méthode établit une connexion sécurisée à Microsoft Graph, ce qui vous permet d’interroger vos données Microsoft 365. Elle est idéale pour réaliser un inventaire complet de tous les groupes de votre tenant, y compris les groupes dynamiques et ceux activés pour Teams
A. Installer et importer les modules
Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module Microsoft.Graph
Connect-MgGraph -Scopes "Group.Read.All","Reports.Read.All"
Cette commande installe le SDK de manière sécurisée et le connecte avec les autorisations nécessaires.
B. Utiliser Get-MgGroup pour inventorier tous les groupes Microsoft 365
Get-MgGroup -All | Select DisplayName,GroupTypes,Visibility,CreatedDateTime |
Export-Csv "C:\Reports\GroupInventory.csv" -NoTypeInformation
💡Astuce : filtrez les résultats par type de groupe ou par convention de nommage pour isoler les groupes dynamiques ou activés pour Teams.
Méthode 2 : récupérer les membres et les propriétaires via Exchange Online
📌Cas d’utilisation : cette méthode vous permet d’extraire directement d’Exchange Online les informations sur les membres et les propriétaires. Elle est particulièrement utile aux administrateurs qui gèrent des groupes de sécurité à extension messagerie ou des listes de distribution Microsoft 365.
A. Se connecter à Exchange Online :
Connect-ExchangeOnline -UserPrincipalName [email protected]
Get-UnifiedGroup | Select DisplayName,PrimarySmtpAddress,AccessType |
Export-Csv "C:\Reports\UnifiedGroups.csv" -NoTypeInformation
B. Lister les membres ou les propriétaires d’un groupe :
Get-UnifiedGroupLinks -Identity "<GroupName>" -LinkType Members |
Select Name,PrimarySmtpAddress
Exportez les résultats pour les examiner ou constituer une documentation d’audit.
Méthode 3 : analyser l’engagement des groupes avec l’API Microsoft Graph Reports
📌Cas d’utilisation : cette méthode vous permet d’analyser l’activité des groupes et d’obtenir des informations sur leur cycle de vie.
A. Appeler l’API Graph Reports pour l’activité des groupes
$uri = "https://graph.microsoft.com/v1.0/reports/getOffice365GroupsActivityDetail(period='D30')"
Invoke-MgGraphRequest -Method GET -Uri $uri |
ConvertFrom-Csv | Export-Csv "C:\Reports\GroupActivity_D30.csv" -NoTypeInformation
Comparez le nombre d’activités aux données d’appartenance pour repérer les groupes inactifs, sous-utilisés ou sans propriétaire.
Méthode 4 : automatiser les exports et leur planification
📌Cas d’utilisation : cette méthode vous permet de générer automatiquement des rapports de groupe pour la conformité et le reporting de direction.
- Sécurisez les identifiants de votre application en les stockant dans un fichier JSON chiffré.
- Utilisez une tâche planifiée PowerShell ou un runbook Azure Automation pour une exécution dans le cloud :
$timestamp = Get-Date -Format "yyyyMMdd_HHmm"Get-MgGroup -All | Export-Csv "C:\Reports\Groups_$timestamp.csv" -NoTypeInformation
- Activez la journalisation pour chaque exécution et vérifiez qu’elle inclut les informations clés : horodatage de l’exécution, nom du tenant, nombre d’enregistrements et statut de réussite ou d’échec.
- Vous pouvez également injecter les fichiers CSV exportés dans Power BI ou dans un pack de rapports de conformité.
Bonnes pratiques pour obtenir des rapports sur les groupes Microsoft 365 avec PowerShell et Graph Reports
| Pratique | Objectif | Bénéfice |
| Cmdlets Graph pour l’inventaire | Garantit la cohérence avec les API Microsoft Graph modernes pour récupérer les données de groupe et d’annuaire | Fournit des résultats d’inventaire précis, fiables et entièrement pris en charge |
| Exchange Online pour les détails d’appartenance | Renforce la gouvernance en donnant de la visibilité sur la propriété des groupes et les autorisations d’accès | Permet aux administrateurs de confirmer qui possède chaque groupe et qui a accès à quoi |
| API Graph Reports pour l’analyse de l’activité | Offre une visibilité sur le cycle de vie des groupes en suivant les usages et les schémas d’engagement | Facilite l’identification des groupes inactifs, redondants ou sans propriétaire |
| Authentification application seule | Améliore la sécurité en supprimant le besoin de connexions interactives | Offre une authentification sécurisée par jeton qui protège les accès administratifs |
| Exports planifiés | Standardise la collecte des données grâce à l’automatisation | Garantit un reporting reproductible et des preuves en continu pour les audits de conformité |
Valider et résoudre les problèmes courants
Si votre script renvoie des erreurs ou produit des données incomplètes, utilisez la check-list ci-dessous pour identifier et résoudre les problèmes les plus fréquents.
- Résultats vides : vérifiez les paramètres de journalisation du tenant et contrôlez que les autorisations de l’API Graph sont correctement attribuées.
- Accès refusé : assurez-vous que le consentement administrateur a été explicitement accordé pour toutes les portées d’API requises dans l’inscription d’application Azure.
- Limites de débit : appliquez une logique de délai ou de nouvelle tentative pour les tenants volumineux afin de ralentir les requêtes et d’éviter de saturer les limites de débit de l’API Graph.
- Erreurs de script : encadrez les blocs de requête dans un Try/Catch pour gérer correctement les exceptions et consigner l’erreur en vue d’un examen ultérieur.
- Jetons expirés : mettez en place des alertes pour surveiller l’expiration des jetons et renouvelez régulièrement les secrets de votre application. Cette étape garantit la continuité de vos rapports automatisés.
Point d’automatisation pour le reporting des groupes Microsoft 365
L’automatisation peut tout changer pour les MSP. Par exemple, une tâche planifiée quotidienne qui se connecte à Microsoft Graph avec une authentification application seule peut vous aider à :
- récupérer les listes de groupes et les indicateurs d’activité sur plusieurs tenants clients ;
- fusionner les données dans un rapport CSV unifié, horodaté ;
- envoyer automatiquement les rapports par e-mail aux administrateurs désignés.
Cette approche réduit le travail manuel de vos équipes et leur permet de se concentrer sur des tâches plus importantes.
Simplifier le reporting des groupes Microsoft 365 avec NinjaOne
NinjaOne rend le reporting des groupes Microsoft 365 très simple. Sa puissante fonction de script vous permet d’automatiser les déploiements PowerShell dans les environnements de vos clients.
Grâce au stockage sécurisé des identifiants, vous pouvez créer des scripts qui fournissent des informations exploitables, générer automatiquement des rapports CSV et les joindre directement à la documentation client, sans compromettre la sécurité.
Commencez votre essai gratuit du logiciel de gestion des terminaux classé n°1 sur G2
Pas de carte de crédit requise, accès complet à toutes les fonctionnalités
Générez des rapports plus pertinents sur les groupes Microsoft 365 avec PowerShell
Le reporting PowerShell moderne pour les groupes Microsoft 365 s’appuie sur des cmdlets et des API basés sur Graph, ce qui offre un niveau de précision et d’automatisation inatteignable avec les anciennes méthodes.
En réunissant l’inventaire, les données d’appartenance et l’activité dans des rapports unifiés, vous gagnez une visibilité essentielle sur chaque tenant client ou unité métier que vous gérez. Plus important encore, cette approche garde votre processus de reporting évolutif et prêt pour l’avenir.
Sujets connexes :
- Comment utiliser l’API Microsoft Graph pour extraire des rapports de conformité sur plusieurs tenants
- Comment sauvegarder Microsoft 365 Exchange Online
- Le guide de l’administrateur sur les autorisations des groupes SharePoint : configuration, gestion et bonnes pratiques
- Utiliser l’API Microsoft Graph avec Windows PowerShell pour surveiller et gérer les clients Microsoft 365
- Comment générer des rapports de conformité adaptés aux MSP à partir de Microsoft Secure Score
