IAMinerva
AccueilBlogA propos
m3Nouveautes M365coMicrosoft CopilotteMicrosoft TeamsshSharePoint & OneDriveinIntune & SecuriteexExchange & OutlookpoPower PlatformazAzure & Entra IDtuTutoriels & GuidesevEvenements & ConferencesseSecuritewiWindows
IAMinerva

Blog professionnel dedie a l'ecosysteme Microsoft 365.

Liens rapides

AccueilBlogA proposNewsletter

Restez informe

Recevez les dernieres actualites Microsoft 365 directement dans votre boite mail.

© 2026 IAMinerva. Tous droits reserves.

Construit avecNext.js&Tailwind
Graphiques abstraits et géométriques avec des couches de couleurs translucides.
BlogExchange & OutlookConvertir les IDs Exchange pour l'API Graph Microsoft 365
Exchange & Outlook#Exchange Online#Microsoft Graph API#PowerShell

Convertir les IDs Exchange pour l'API Graph Microsoft 365

Convertissez les identifiants Exchange (storeId, entryId, RestId) pour l'API Graph et l'eDiscovery ciblée. Guide technique avec scripts PowerShell complets.

Houssem MAKHLOUF
28 juin 2026
8 min de lecture

TL;DR par Minerva

généré par IA

Convertissez les identifiants Exchange (storeId, entryId, RestId) pour l'API Graph et l'eDiscovery ciblée. Guide technique avec scripts PowerShell complets.

Introduction : le labyrinthe des identifiants Exchange

Les administrateurs Exchange Online et les développeurs qui travaillent avec Microsoft Graph se heurtent régulièrement à un même obstacle : la multiplicité des formats d'identifiants de dossiers de boîtes aux lettres. Chaque composant de l'écosystème Exchange utilise sa propre représentation interne, et naviguer entre ces formats sans documentation claire relève souvent du défi.

Cet article examine concrètement les conversions nécessaires pour passer du storeId, retourné par les cmdlets PowerShell Exchange Online, jusqu'au RestId exploitable par les méthodes de l'API Microsoft Graph. Nous abordons également la conversion vers le format attendu par les recherches eDiscovery ciblées (targeted collections).

i

Périmètre de l'article

Les conversions décrites ici concernent exclusivement les identifiants de dossiers de boîtes aux lettres Exchange Online. Les étapes sont similaires pour les éléments (items), mais le cas d'usage principal reste ici la gestion des dossiers via PowerShell et l'API Graph.

Les différents types d'identifiants Exchange Online

Avant d'entrer dans le vif du sujet, il est utile de dresser un panorama des identifiants impliqués dans la chaîne de conversion :

  • storeId : identifiant natif retourné par Get-ExOMailboxFolderStatistics, Get-MailboxFolderStatistics ou Get-MailboxFolder. C'est le point de départ systématique pour un profil administrateur.
  • eDiscoveryId : format hexadécimal attendu par la fonctionnalité de targeted collection dans les recherches de contenu (Content Search / eDiscovery).
  • entryId : identifiant utilisé par les clients MAPI. Sert d'intermédiaire obligatoire pour atteindre le RestId.
  • RestId : identifiant consommé par les API Outlook/Graph (/me/mailFolders/{id}).
  • OWAId : variante du RestId adaptée à la navigation directe dans Outlook Web App.
IdentifiantSourceUsage principal
storeIdGet-ExOMailboxFolderStatisticsPoint de départ PowerShell
eDiscoveryIdConversion depuis storeIdTargeted collections eDiscovery
entryIdConversion depuis storeIdClients MAPI, intermédiaire Graph
RestIdAPI translateExchangeIdsAppels API Microsoft Graph
OWAIdDérivé du RestIdNavigation directe dans OWA

Étape 1 : récupérer le storeId via PowerShell

La première étape consiste à identifier le dossier cible et à récupérer son storeId via la propriété FolderId :

⚡PowerShell
1Get-ExOMailboxFolderStatistics vasil | Where-Object { $_.Name -eq "Xbox" } | Select-Object Name, FolderId

Résultat attendu :

⚡PowerShell
1Name FolderId
2---- --------
3Xbox LgAAAAChKSJAhlnUTIHtKSso30ThAQBIPfDMxyP/RYhY8M8xmAPVAAS8XYoAAAAB

Ce storeId encodé en Base64 est la matière première de toutes les conversions suivantes.

Étape 2 : convertir le storeId en eDiscoveryId

La fonctionnalité de targeted collection dans Microsoft Purview eDiscovery permet de restreindre une recherche de contenu à un dossier précis via le mot-clé KQL folderId. Cette approche est particulièrement efficace lors d'investigations ciblées.

✦

Targeted collections eDiscovery

La targeted collection permet de limiter une recherche eDiscovery à un dossier spécifique, y compris avec des exclusions. Le mot-clé KQL folderId attend un format hexadécimal spécifique, différent du storeId brut.

Voici le bloc PowerShell permettant cette conversion :

⚡PowerShell
1$folderId = [Convert]::FromBase64String($folderId)
2
3$encoding = [System.Text.Encoding]::GetEncoding("us-ascii")
4$nibbler = $encoding.GetBytes("0123456789ABCDEF")
5
6$indexIdBytes = New-Object byte[] 48; $indexIdIdx = 0
7$folderId | Select-Object -Skip 23 -First 24 | ForEach-Object {
8 $indexIdBytes[$indexIdIdx++] = $nibbler[$_ -shr 4]
9 $indexIdBytes[$indexIdIdx++] = $nibbler[$_ -band 0x0F]
10}
11
12return $encoding.GetString($indexIdBytes)

Pour le dossier Xbox utilisé en exemple, la transformation produit :

1# storeId (Base64)
2LgAAAAChKSJAhlnUTIHtKSso30ThAQBIPfDMxyP/RYhY8M8xmAPVAAS8XYoAAAAB
3 
4# eDiscoveryId (hexadécimal)
5483DF0CCC723FF458858F0CF319803D50004BC5D8A000000

Ce format hexadécimal peut désormais être utilisé directement dans une requête KQL ciblée sur ce dossier.

translateIDs

Étape 3 : convertir le storeId en entryId (intermédiaire MAPI)

L'API Graph expose la méthode translateExchangeIds pour convertir des identifiants Exchange vers d'autres formats. Cependant, elle ne prend pas en charge le storeId comme entrée directe. Il est donc nécessaire de passer d'abord par l'entryId, format MAPI intermédiaire.

!

Limitation de translateExchangeIds

La méthode translateExchangeIds de l'API Graph ne supporte pas le storeId en entrée directe. La conversion intermédiaire vers l'entryId est obligatoire. Par ailleurs, les identifiants immutableEntryId et restImmutableEntryId ne sont pas supportés pour les dossiers.

La fonction PowerShell suivante effectue la conversion storeId → entryId :

⚡PowerShell
1function FolderIdToEntryId {
2
3 param([Parameter(Mandatory=$true)]$folderId)
4
5 # Décodage Base64 vers tableau d'octets
6 $folderIdBytes = [Convert]::FromBase64String($folderId)
7
8 # Conversion en chaîne hexadécimale, suppression des tirets, premier octet ignoré
9 $folderIdHexString = [System.BitConverter]::ToString($folderIdBytes).Replace('-','')
10 $folderIdHexStringLength = $folderIdHexString.Length
11
12 # Suppression du premier et du dernier octet
13 $entryIdHexString = $folderIdHexString.SubString(2, ($folderIdHexStringLength - 4))
14
15 # Reconstruction du tableau d'octets (2 caractères = 1 octet)
16 $entryIdBytes = [byte[]]::new($entryIdHexString.Length / 2)
17 For ($i = 0; $i -lt $entryIdHexString.Length; $i += 2) {
18 $entryIdTwoChars = $entryIdHexString.Substring($i, 2)
19 $entryIdBytes[$i / 2] = [convert]::ToByte($entryIdTwoChars, 16)
20 }
21
22 # Encodage en Base64 URL-safe
23 $entryIdBase64 = [Convert]::ToBase64String($entryIdBytes)
24 $equalCharCount = $entryIdBase64.Length - $entryIdBase64.Replace('=','').Length
25 $entryId = $entryIdBase64.TrimEnd('=').Replace('/','-').Replace('+','_') + $equalCharCount
26
27 return $entryId
28}

Étape 4 : obtenir le RestId via translateExchangeIds

Une fois le entryId obtenu, il est possible d'appeler la méthode translateExchangeIds de Microsoft Graph pour obtenir le RestId. Ce dernier est l'identifiant attendu par toutes les opérations sur les dossiers via les API Graph (endpoints /me/mailFolders, /users/{id}/mailFolders, etc.).

Les dossiers système prédéfinis (Inbox, SentItems, RecoverableItemsDeletions, etc.) disposent de valeurs dites well-known qui peuvent être utilisées directement sans conversion. La conversion est nécessaire uniquement pour les dossiers créés par les utilisateurs.

Script complet : générer tous les identifiants d'une boîte aux lettres

En combinant les conversions décrites ci-dessus, il est possible de produire un inventaire complet des dossiers d'une boîte aux lettres avec l'ensemble de leurs identifiants.

Prérequis

  • Module Exchange Online Management (pour Get-ExOMailboxFolderStatistics)
  • Module Microsoft Graph SDK for PowerShell
  • Permission déléguée : User.ReadBasic.All (côté Graph) et droits Exchange appropriés

Paramètres du script

Le script expose les paramètres suivants :

  • -Mailbox (obligatoire) : adresse SMTP principale ou GUID ExternalDirectoryObjectId de la boîte cible.
  • -IncludeNonIPM (optionnel) : inclut les dossiers hors de l'arborescence IPM (non visibles par l'utilisateur).
×

Attention au paramètre -IncludeNonIPM

Les boîtes aux lettres Exchange Online contiennent potentiellement des milliers de dossiers système hors IPM. N'utilisez le paramètre -IncludeNonIPM qu'en connaissance de cause, car cela peut considérablement allonger la durée d'exécution et le volume de données produites.

Exemples d'utilisation

⚡PowerShell
1# Exécution sur une boîte identifiée par son adresse SMTP
2.\Mailbox_Folder_IDs.ps1 -Mailbox user@domain.com
3
4# Exécution avec l'ExternalDirectoryObjectId (GUID)
5.\Mailbox_Folder_IDs.ps1 -Mailbox 4ebd5057-4d61-4ca0-beb7-df3f1ebd1aa7
6
7# Inclure les dossiers hors de l'arborescence IPM
8.\Mailbox_Folder_IDs.ps1 -Mailbox user@domain.com -IncludeNonIPM
✦

Identifiant et bouton Open in OWA

Si vous prévoyez d'utiliser le bouton Open in OWA généré dans le rapport HTML, privilégiez l'adresse SMTP principale (UPN) comme valeur du paramètre -Mailbox. Ce bouton ne fonctionne pas correctement si un GUID ExternalDirectoryObjectId est fourni en entrée.

Traitement interne du script

Le script suit la séquence logique suivante :

1

Connexion et vérification des permissions

Une fonction de connectivité intégrée établit la session Exchange Online et Graph, puis vérifie la présence de la permission User.ReadBasic.All. Elle peut être remplacée par votre propre mécanisme d'authentification.

2

Récupération des dossiers de la boîte

Appel à Get-ExOMailboxFolderStatistics pour récupérer l'intégralité des dossiers. Le switch -IncludeNonIPM conditionne l'inclusion des dossiers système.

3

Calcul des identifiants eDiscoveryId et EntryId

Pour chaque dossier, le storeId est converti localement en eDiscoveryId et en entryId sans appel réseau supplémentaire.

4

Appel batch à translateExchangeIds

Les entryId générés sont soumis à la méthode translateExchangeIds de l'API Graph en lots de 1 000. Les RestId retournés sont stockés dans une table de hachage.

5

Export des résultats

Deux fichiers sont générés dans le répertoire courant : un fichier CSV et un fichier HTML avec tableau triable. Le rapport HTML inclut deux boutons par ligne : Open in Graph Explorer et Open in OWA.

Colonnes du rapport CSV

  • Name : nom du dossier
  • FolderType : type de dossier Exchange
  • Identity : chemin complet du dossier dans la boîte
  • FolderId : storeId (format Base64)
  • eDiscoveryId : identifiant pour les targeted collections
  • EntryId : identifiant MAPI
  • RestId : identifiant pour l'API Microsoft Graph
  • OWAId : identifiant pour la navigation OWA

translateIDs2

translateIDs1

Comportement des boutons dans le rapport HTML

  • Open in Graph Explorer : fonctionne en mode délégué uniquement si la permission Mail.ReadBasic.Shared est accordée.
  • Open in OWA : fonctionne exclusivement pour les dossiers de messagerie accessibles aux utilisateurs (pas les dossiers Calendrier, Contacts ou système). Requiert l'adresse UPN/SMTP comme identifiant de boîte.

Considérations opérationnelles

L'utilisation de permissions applicatives (application permissions) n'est pas encore implémentée dans la version actuelle du script. Pour les environnements nécessitant une automatisation sans interaction utilisateur, une adaptation du bloc de connexion sera nécessaire.

D'un point de vue gestion des identités M365, ces conversions illustrent bien la complexité inhérente à la coexistence des couches MAPI, EWS (en cours de dépréciation) et Graph dans Exchange Online. La migration progressive vers les API Graph impose de maîtriser ces transformations pour maintenir la parité fonctionnelle des outils d'administration.

i

Dépréciation EWS

Avec la dépréciation annoncée d'Exchange Web Services (EWS), la maîtrise de la conversion vers les identifiants Graph (RestId) devient un prérequis incontournable pour la modernisation des scripts et outils d'administration Exchange Online.

Partager:
HM

Houssem MAKHLOUF

Microsoft 365 enthusiast & IT professional.

Article précédent

Copilot Cowork : comprendre le coût réel de chaque modèle

28 juin 2026
Article suivant

Cloud native et IA agentique: un duo incontournable

28 juin 2026

Articles similaires

Exécution de scripts PowerShell pour auditer des applications AI et gérer leurs enregistrements.copilot

Auditer et Gérer les Applications AI avec PowerShell

Auditez les applications AI non autorisées dans Entra ID avec PowerShell et Microsoft Graph pour renforcer contrôle et sécurité.

28 juin 20265 min
Pyramide réfléchissante au centre de réseaux de fils dorés et cercles.azure

Graph Delta Queries pour les groupes Entra ID

Apprenez à utiliser Graph Delta Queries pour les groupes Entra ID pour suivre les modifications en temps réel. Tutoriels et scripts inclus.

27 juin 20264 min
Flux lumineux doré sur fond sombre avec des formes géométriques stylisées.events

Moteur PowerShell sélectionnable pour exports PSMA Granfeldt

Optimisez les exports Microsoft Entra avec le moteur PowerShell sélectionnable PSMA. Gagnez 1.3x à 3.5x de performance avec la version 6.1.0604.2026.

27 juin 20267 min