Microsoft Loop s’impose progressivement comme l’un des outils collaboratifs majeurs de Microsoft 365. Grâce à ses composants dynamiques et co-éditables (tables, listes, notes, tâches), Loop permet aux équipes de travailler ensemble en temps réel, que ce soit dans Teams, Outlook ou OneDrive.
Mais cette flexibilité amène une question de gouvernance essentielle :
Comment obtenir une vue complète de tous les composants Loop présents dans un tenant M365 ?
Contrairement à Forms, Microsoft ne fournit pas encore une API dédiée permettant de lister tous les Loops d’une organisation. Pourtant, il reste possible d’obtenir un inventaire fiable et exploitable.
Pourquoi Loop n’offre pas encore une API dédiée ?
Bien que Loop soit désormais un produit largement diffusé, son API “native” n’est pas encore disponible. Microsoft confirme que les Loop Components sont stockés comme des fichiers spéciaux dans :
- OneDrive (pour les Loops personnels)
- SharePoint (pour les Loops liés à des Teams, des Groupes M365 ou des espaces Loop)
Chaque composant Loop est en réalité un fichier .fluid.
C’est grâce à cette particularité qu’un inventaire devient possible.
La bonne nouvelle : Loop repose sur OneDrive et SharePoint
Même sans API Loop dédiée, les fichiers .fluid peuvent être trouvés et analysés via Microsoft Graph, car ils sont stockés dans des Drives SharePoint ou OneDrive.
Concrètement, cela permet de :
- localiser tous les fichiers Loop du tenant
- identifier leurs propriétaires (auteurs ou drive racine)
- extraire leurs métadonnées (date de création, modification, emplacement)
- détecter les Loops orphelins (drive appartenant à un utilisateur supprimé)
L’inventaire ne fournira pas le “titre logique” d’un composant Loop (car celui-ci dépend du contenu), mais il donne tout ce qui est possible aujourd’hui à l’échelle d’un tenant.
Ce que l’on peut inventorier avec certitude
Grâce à Microsoft Graph, tu peux récupérer :
| Information | Disponible ? | Source |
|---|---|---|
| Liste de tous les fichiers Loop | ✔ | Graph Search API |
| Nom du composant Loop | ✔ | Attribut name du fichier .fluid |
| URL d’accès | ✔ | Attribut webUrl |
| Propriétaire / auteur | ✔ | Attribut createdBy |
| Date de dernière modification | ✔ | Attribut lastModifiedDateTime |
| Loop orphelin (propriétaire supprimé) | ✔ | Comparaison avec Azure AD |
| Liste complète des “Loop pages” (workspaces) | ❌ | Pas d’API disponible |
| Inventaire “tenant-wide” des Loops avec titres métier | ❌ | Pas pris en charge |
Mais pour un audit de gouvernance, ce que nous obtenons suffit largement.
Prérequis
Avant d’exécuter le script, il vous faut :
- PowerShell 7+
- Le module Microsoft Graph PowerShell
- Un compte avec les permissions :
Files.Read.AllSites.Read.AllUser.Read.All
Installation :
Install-Module Microsoft.Graph -Scope AllUsers
Connexion :
Connect-MgGraph -Scopes "Files.Read.All","Sites.Read.All","User.Read.All"
Le script PowerShell pour inventorier tous les composants Loop
Ce script interroge Microsoft Graph pour :
- Rechercher tous les fichiers
.fluid - Extraire leurs métadonnées
- Identifier le propriétaire
- Exporter un inventaire complet dans un CSV
Voici le script :
# ============================================
# Inventaire des composants Loop (.fluid)
# Objectif : Lister tous les Loop Components présents
# dans un tenant Microsoft 365
# ============================================
Connect-MgGraph -Scopes "Files.Read.All","User.Read.All","Sites.Read.All"
Select-MgProfile -Name beta
Write-Host "Recherche des fichiers Loop (.fluid) dans le tenant..." -ForegroundColor Cyan
# Requête Microsoft Graph Search pour trouver tous les .fluid
$queryBody = @{
requests = @(
@{
entityTypes = @("driveItem")
query = @{
queryString = "filetype:fluid"
}
fields = @("name","createdBy","lastModifiedBy","parentReference","webUrl")
}
)
}
$response = Invoke-MgGraphRequest
-Method POST
-Uri "https://graph.microsoft.com/beta/search/query"
-Body $queryBody
$inventory = @()
foreach ($hit in $response.value[0].hitsContainers[0].hits) {
$item = $hit.resource
$inventory += [pscustomobject]@{
LoopName = $item.name
Url = $item.webUrl
DriveId = $item.parentReference.driveId
Owner = $item.createdBy.user.displayName
OwnerEmail = $item.createdBy.user.email
LastModified = $item.lastModifiedDateTime
}
}
$filename = "LoopInventory_$(Get-Date -Format 'yyyyMMdd').csv"
$inventory | Export-Csv $filename -NoTypeInformation -Encoding UTF8
Write-Host "Inventaire terminé ! Fichier généré : $filename" -ForegroundColor Green
Exemple de résultat
Une fois le script exécuté, vous obtiendrez un fichier CSV du type :
| LoopName | Owner | OwnerEmail | LastModified | Url |
|---|---|---|---|---|
| NotesProjet.fluid | Marie Tremblay | marie.tremblay@entreprise.com | 2025-02-18 | … |
| PlanificationSprint.fluid | Équipe TI | équipe-ti@entreprise.com | 2025-01-22 | … |
| SuiviAncienEmployé.fluid | orphelin | (compte supprimé) | 2023-09-11 | … |
Ce rapport permet :
- Un inventaire global des composants Loop
- La détection d’objets orphelins
- Une meilleure gouvernance des outils collaboratifs
- Une base solide pour des audits réguliers
- La possibilité de monitorer l’adoption de Loop
Même si Microsoft Loop n’offre pas encore une API dédiée pour inventorier les composants, il est tout à fait possible d’obtenir une vue complète grâce à Microsoft Graph.
En scannant tous les fichiers .fluid du tenant, vous pouvez :
- Recenser tous les composants Loop existants
- Identifier leurs propriétaires
- Détecter les fichiers orphelins
- Mieux documenter et gérer la collaboration dans M365
C’est aujourd’hui la meilleure approche, en attendant que Microsoft publie une API Loop complète.
