Microsoft Planner est devenu un outil incontournable dans Microsoft 365 pour la gestion des tâches, la coordination d’équipe et le suivi des projets. Il est intégré à Teams, SharePoint, Outlook et repose sur les Groupes Microsoft 365 pour organiser ses plans.
Mais lorsqu’une organisation cherche à améliorer sa gouvernance, une question revient inévitablement :
Comment obtenir une liste complète de tous les plans Planner du tenant ?
Et surtout : qui en est propriétaire ?
À la différence de Forms ou Sway, Planner dispose d’une API Microsoft Graph officielle, stable et mature, permettant une véritable extraction de données. Dans cet article, nous verrons ce que l’on peut inventorier, ce que l’on ne peut pas faire et comment générer un inventaire complet au format CSV.
Pourquoi l’inventaire Planner est possible (et fiable)
L’architecture de Planner repose sur les Groupes Microsoft 365. Chaque plan est associé à :
- un groupe M365 (Teams inclus),
- qui agit comme propriétaire,
- et stocke notamment les fichiers liés au plan dans SharePoint.
Grâce à cette structure, l’inventaire tenant-wide se fait en trois étapes :
- Récupérer tous les groupes M365
- Vérifier, pour chacun d’eux, s’il possède un ou plusieurs plans Planner
- Extraire les métadonnées des plans via Microsoft Graph
C’est une méthode totalement supportée par Microsoft, fiable et compatible avec les API v1.0 (version stable).
Ce que l’on peut inventorier avec Planner via Graph
Planner expose une API très complète, permettant d’extraire :
✔ Tous les plans Planner associés à des groupes
✔ Le nom du plan
✔ Le propriétaire (nom du groupe, email, ID)
✔ Le créateur
✔ La date de dernière modification
✔ Les membres associés au plan
✔ Toutes les tâches et leurs assignations (si souhaité)
Il est également possible de repérer :
✔ les plans obsolètes,
✔ les plans appartenant à des groupes inactifs,
✔ ou même des plans orphelins si un groupe a été supprimé mais que l’objet Planner subsiste.
En résumé : Planner offre l’une des APIs les plus solides de l’écosystème Microsoft 365.
Ce qui n’est pas possible (encore)
Malgré la maturité de l’API, certaines limites restent présentes :
❌ Il n’existe pas d’endpoint pour lister tous les plans du tenant en un seul appel
❌ Impossible d’accéder aux plans personnels (non associés à un groupe)
❌ Impossible de savoir automatiquement si un plan est “abandonné” (pas de métrique d’activité)
Mais pour de la gouvernance d’entreprise, l’inventaire basé sur les groupes couvre 99 % des cas d’usage.
Prérequis techniques
Pour exécuter le script ci-dessous, vous devez disposer :
- du module Microsoft Graph PowerShell,
- d’un compte administrateur avec les permissions :
Group.Read.AllTasks.Read.AllouPlanner.Read.All
Installation :
Install-Module Microsoft.Graph -Scope AllUsers
Connexion :
Connect-MgGraph -Scopes "Group.Read.All","Planner.Read.All"
Script PowerShell : Inventaire des plans Planner
Voici un script simple, clair et efficace pour créer un inventaire complet des plans Planner au sein d’un tenant Microsoft 365.
Il génère automatiquement un fichier CSV contenant :
- ID du plan
- Nom du plan
- Groupe propriétaire
- Email du groupe
- Créateur
- Date de dernière modification
Le script
# ============================================
# Inventaire Microsoft Planner (via Graph API)
# Objectif : Lister tous les plans Planner du tenant
# ============================================
Connect-MgGraph -Scopes "Group.Read.All","Planner.Read.All"
Select-MgProfile -Name v1.0
Write-Host "Récupération des groupes M365..." -ForegroundColor Cyan
$groups = Get-MgGroup -All -Filter "groupTypes/any(c:c eq 'Unified')" -Property "id,displayName,mail"
$results = @()
foreach ($group in $groups) {
Write-Host "Analyse du groupe : $($group.displayName)" -ForegroundColor Yellow
try {
# Obtenir les Planner Plans du groupe
$plans = Get-MgGroupPlannerPlan -GroupId $group.Id -ErrorAction Stop
foreach ($plan in $plans) {
$planDetails = Get-MgPlannerPlanDetail -PlannerPlanId $plan.Id
$results += [pscustomobject]@{
PlanId = $plan.Id
PlanTitle = $plan.Title
GroupId = $group.Id
GroupName = $group.DisplayName
GroupEmail = $group.Mail
CreatedBy = $plan.CreatedBy.User.Id
LastModified = $planDetails.LastModifiedDateTime
}
}
}
catch {
# Pas de Planner pour ce groupe — on ignore
}
}
$output = "PlannerInventory_$(Get-Date -Format 'yyyyMMdd').csv"
$results | Export-Csv -Path $output -NoTypeInformation -Encoding UTF8
Write-Host "Inventaire terminé ! Fichier généré : $output" -ForegroundColor Green
Exemple de rapport généré
| PlanTitle | GroupName | GroupEmail | CreatedBy | LastModified |
|---|---|---|---|---|
| Migration Azure | TI Cloud | ticloud@entreprise.com | 7ff2d… | 2025-01-12 |
| Onboarding RH | Ressources Humaines | rh@entreprise.com | 91a21… | 2025-02-03 |
| Plan ancien employé | (orphelin) | — | — | 2023-09-04 |
Un tel inventaire permet de :
- cartographier les projets actifs,
- repérer les plans dormants ou obsolètes,
- améliorer la gouvernance Teams,
- assurer une rétention et une continuité documentaire,
- auditer les espaces collaboratifs de manière systématique.
Grâce à l’API Microsoft Graph, inventorier Microsoft Planner est non seulement possible, mais propre et fiable. Avec quelques lignes de PowerShell, un administrateur M365 peut obtenir :
✔ une vision complète des plans,
✔ leur propriétaires,
✔ leur historique de modification,
✔ leur rattachement à Teams ou aux groupes M365,
✔ et une base solide pour automatiser la gouvernance.
Planner est aujourd’hui l’une des applications M365 les mieux intégrées à Graph, ce qui en fait un excellent candidat pour les audits, les rapports automatisés et la supervision des projets collaboratifs.
