HomeMicrosoft 365Microsoft 365 : détecter les groupes sans propriétaire ou...

Microsoft 365 : détecter les groupes sans propriétaire ou sans membre avant qu’ils ne deviennent un problème

Dans Microsoft 365, les groupes sont partout. Chaque équipe Teams, chaque site SharePoint moderne, chaque plan Planner repose sur un Microsoft 365 Group. C’est une brique fondamentale de la collaboration moderne.

Mais comme toute structure vivante, un tenant évolue. Des projets se terminent, des équipes changent, des utilisateurs quittent l’organisation. Et progressivement, certains groupes se retrouvent dans des situations problématiques sans que personne ne s’en rende compte.

Parmi les cas les plus fréquents, on retrouve les groupes sans propriétaire et les groupes sans membre. À première vue, cela peut sembler anodin. En réalité, ce sont deux signaux forts de dérive de gouvernance.

Un groupe sans propriétaire est une bombe à retardement. Plus personne ne peut gérer les membres, modifier les paramètres ou assumer la responsabilité du contenu. Si un problème survient, l’IT devient le seul recours. Dans un environnement contenant des centaines ou des milliers de groupes, ce scénario n’est pas hypothétique. Il finit toujours par arriver.

À l’inverse, un groupe sans membre peut indiquer un projet abandonné ou une équipe supprimée sans nettoyage. Ces groupes “fantômes” continuent d’exister, parfois avec du contenu stocké, des permissions configurées, ou des liens partagés. Ils augmentent la complexité du tenant et compliquent les audits.

La bonne nouvelle, c’est qu’il n’est pas nécessaire d’attendre qu’un audit externe ou un incident révèle ces situations. On peut les détecter automatiquement.

Avec Microsoft Graph PowerShell, il est possible de parcourir l’ensemble des groupes Microsoft 365 et d’identifier ceux qui n’ont plus de propriétaire ou plus de membre actif.

Voici une logique simple qui permet de repérer ces cas :

Connect-MgGraph -Scopes "Group.Read.All"

$groups = Get-MgGroup -Filter "groupTypes/any(c:c eq 'Unified')" -All

foreach ($group in $groups) {

    $owners  = Get-MgGroupOwner -GroupId $group.Id -All
    $members = Get-MgGroupMember -GroupId $group.Id -All

    if ($owners.Count -eq 0 -or $members.Count -eq 0) {

        [pscustomobject]@{
            GroupName   = $group.DisplayName
            GroupId     = $group.Id
            OwnerCount  = $owners.Count
            MemberCount = $members.Count
        }

    }
}

Ce script ne fait rien de spectaculaire. Il rend simplement visible ce qui passe habituellement inaperçu. Et c’est précisément sa force.

Exécuté ponctuellement, il permet d’obtenir une photographie rapide de l’état de santé du tenant. Exécuté régulièrement, il devient un véritable mécanisme de gouvernance continue.

L’objectif n’est pas de supprimer massivement les groupes identifiés. Il est d’initier une action structurée. Dans certains cas, il suffira d’ajouter un propriétaire métier. Dans d’autres, une notification pourra être envoyée avant suppression. Parfois, le groupe devra être archivé ou nettoyé.

Ce qui est important, c’est que la décision soit intentionnelle. Pas accidentelle.

Dans une stratégie de gouvernance mature, ce type de contrôle simple a un impact réel. Il réduit la dette structurelle, améliore la résilience organisationnelle et simplifie les audits futurs.

Les groupes orphelins ou vides ne sont pas une exception rare. Ils sont inévitables dans un environnement collaboratif dynamique. La différence entre un tenant maîtrisé et un tenant chaotique tient souvent à ce genre de détail.

Automatiser leur détection n’est pas une mesure spectaculaire. C’est une mesure intelligente.

Charles Jenkins
Charles Jenkinshttps://trivium365.com/
Fort de plus de 15 ans d’expérience, il accompagne les organisations dans l’adoption des outils Microsoft pour optimiser leur collaboration et leur productivité. Passionné par l’innovation et l’amélioration continue, il met son expertise au service des équipes pour les aider à tirer le meilleur parti de la transformation numérique.