HomeMicrosoft 365Comment inventorier les Microsoft Lists dans un tenant M365...

Comment inventorier les Microsoft Lists dans un tenant M365 et détecter les listes inactives

Microsoft Lists s’est imposé comme l’un des outils les plus utiles de Microsoft 365 : suivi de projets, gestion d’inventaire, demandes internes, tableaux de bord, catalogues, etc. Derrière son interface moderne, Lists repose entièrement sur SharePoint, ce qui lui confère une structure solide, mais aussi un défi pour la gouvernance. Avec la multiplication des équipes, des sites SharePoint et des Teams, une question revient souvent :

Comment obtenir une liste complète des Microsoft Lists présentes dans mon tenant M365 ?
Et comment détecter celles qui ne sont plus actives ou utilisées ?

La bonne nouvelle : oui, c’est possible.
Légèrement indirect, mais très fiable.

Dans cet article, nous verrons :

  • pourquoi inventorier les Microsoft Lists n’est pas aussi simple que prévu,
  • comment accéder à toutes les listes du tenant,
  • comment calculer leur “inactivité”,
  • et un script PowerShell d’inventaire complet.

Pourquoi Microsoft Lists n’a pas d’inventaire “centralisé”

Il n’existe pas dans Microsoft 365 un écran d’administration du genre :

“Afficher toutes les Microsoft Lists du tenant.”

La raison est simple : Microsoft Lists n’est pas un service autonome. Il s’agit techniquement de listes SharePoint. Chaque Microsoft List est un objet SharePoint stocké dans un site :

  • site d’équipe (Teams)
  • site de groupe M365
  • site SharePoint autonome
  • site de communication

👉 Donc, inventorier Lists = inventorier SharePoint Lists.

Bonne nouvelle : SharePoint et Microsoft Graph offrent toutes les APIs nécessaires.

Les défis de l’inventaire

Bien que possible, un inventaire tenant-wide comporte quelques particularités :

1. Aucun appel unique “donne-moi toutes les Lists du tenant”

Il faut :

  1. récupérer tous les sites SharePoint,
  2. parcourir chaque site pour récupérer ses listes,
  3. filtrer uniquement les listes “Microsoft Lists” (celles visibles pour l’utilisateur).

2. Pas de champ “Dernier accès à la liste”

Microsoft Lists n’inclut pas d’attribut LastAccessedTime. Mais il existe une solution fiable : analyser la dernière modification des items.

3. Les listes orphelines existent

Par exemple :

  • sites d’équipes Teams supprimées partiellement,
  • listes dans des sites sans propriétaire actif,
  • listes abandonnées après un projet.

L’inventaire permet de les identifier.

Ce que l’on peut inventorier et mesurer

FonctionnalitéPossible ?Méthode
Lister toutes les Lists du tenantGraph + SharePoint
Identifier leur emplacement (site)Énumération des sites
Calculer l’inactivitéAnalyse des items
Identifier les listes orphelinesAnalyse du site + propriétaires
Voir les derniers accès⚠️ PartielJournaux d’audit Purview
Un endpoint unique “inventaire Lists”Non supporté

Prérequis techniques

Vous aurez besoin :

  • de PowerShell 7+,
  • du module Microsoft Graph,
  • des permissions :
    • Sites.Read.All
    • Group.Read.All

Installation :

Install-Module Microsoft.Graph -Scope AllUsers

Connexion :

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

Script PowerShell : Inventaire complet des Microsoft Lists + détection d’inactivité

Ce script :

  • parcourt tous les sites SharePoint,
  • récupère leurs listes,
  • analyse les items de chaque liste,
  • calcule une date d’inactivité,
  • génère un rapport CSV complet.
# ==========================================================
# Inventaire Microsoft Lists + mesure de l'inactivité
# Objectif : Lister toutes les Lists du tenant et détecter 
#            les listes inactives (par items non modifiés)
# ==========================================================
Connect-MgGraph -Scopes "Sites.Read.All","Group.Read.All"
Select-MgProfile -Name v1.0
Write-Host "Récupération de tous les sites SharePoint..." -ForegroundColor Cyan
$sites = Invoke-MgGraphRequest -Method GET `
    -Uri "https://graph.microsoft.com/v1.0/sites?search=*"
$results = @()
foreach ($site in $sites.value) {
    Write-Host "Analyse du site : $($site.name)" -ForegroundColor Yellow
    $lists = Invoke-MgGraphRequest -Method GET `
        -Uri "https://graph.microsoft.com/v1.0/sites/$($site.id)/lists"
    foreach ($list in $lists.value) {
        # Filtrer les listes système de SharePoint
        if ($list.list.template -in @("genericList","documentLibrary","tasks")) {
            # Récupérer les items de la liste
            $items = Invoke-MgGraphRequest -Method GET `
                -Uri "https://graph.microsoft.com/v1.0/sites/$($site.id)/lists/$($list.id)/items"
            $lastModified = ($items.value | Sort-Object `
                lastModifiedDateTime -Descending | Select -First 1).lastModifiedDateTime
            $results += [pscustomobject]@{
                SiteName        = $site.name
                SiteId          = $site.id
                ListName        = $list.name
                ListId          = $list.id
                LastModified    = $lastModified
                IsInactive      = $(if ($lastModified -lt (Get-Date).AddMonths(-6)) {"Yes"} else {"No"})
            }
        }
    }
}
$output = "ListsInventory_$(Get-Date -Format 'yyyyMMdd').csv"
$results | Export-Csv -Path $output -NoTypeInformation -Encoding UTF8
Write-Host "Inventaire terminé ! Rapport généré : $output" -ForegroundColor Green

Exemple de rapport généré

SiteListeDernière modificationInactive ?
TI CloudSuivi des licences2025-01-14
RHÉvaluations annuelles2023-06-22
Projet ABacklog Agile2024-09-01
Ancienne équipeSuivi des tâches2022-11-01✅ (probablement orpheline)

Ce rapport permet de :

  • repérer les listes obsolètes,
  • planifier le nettoyage des sites SharePoint,
  • gérer la continuité des projets,
  • auditer l’usage réel de Microsoft Lists,
  • renforcer la gouvernance M365.

Même si Microsoft Lists ne propose pas un inventaire centralisé, la structure SharePoint permet de :

✔ inventorier toutes les listes du tenant,
✔ calculer leur inactivité,
✔ identifier des listes orphelines,
✔ optimiser la gouvernance,
✔ et soutenir les équipes dans le nettoyage ou la continuité des projets.

Avec Microsoft Graph, vous disposez d’un outil puissant et fiable pour superviser l’usage de Lists dans votre organisation.

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.