
Ce n’est pas un secret : Microsoft va doubler le stockage des boîtes aux lettres des offres Microsoft 365 Business, de 50 Go à 100 Go. Pourtant, pour beaucoup d’entre vous, rien n’a bougé : les boîtes restent plafonnées à 50 Go, notamment parce que Microsoft effectue un déploiement par vagues.
Le stockage double, mais pas au 1er juillet 2026
Le 4 décembre 2025, Microsoft a annoncé que les offres Microsoft 365 Business allaient évoluer : Basic, Standard et Premium. Parmi les améliorations, la boîte aux lettres principale passe de 50 Go à 100 Go. Pour les entreprises, cela signifie que l’ajout d’un abonnement Exchange Online Plan 2, souscrit uniquement pour gagner en stockage sur certaines boîtes gourmandes, perd de sa pertinence, puisque l’offre Business atteint désormais le même palier de 100 Go. Mais attention, ce n’est pas le seul avantage de la licence Exchange Online Plan 2.
Mais alors où sont les 50 Go supplémentaires ? D’après le Centre de messagerie Microsoft 365 (référence MC1304290), les 50 Go supplémentaires sont livrés sous la forme d’un service dédié que Microsoft ajoute progressivement à chaque licence Business (son petit nom : EXCHANGE_STORAGE_50GB).
Côté calendrier, le déploiement a débuté à la mi-juin 2026, avec une fin de déploiement d’abord visée pour début août. Le 22 juin 2026, Microsoft a toutefois révisé sa copie : pour les licences Microsoft 365 Business, ce sera terminé d’ici le 30 septembre 2026. Autrement dit, la date du 1er juillet correspond à la prise d’effet des nouveaux tarifs (et ça, Microsoft n’a pas oublié), tandis que la bascule du stockage s’étale sur plusieurs mois.
En théorie, l’augmentation du stockage doit s’appliquer automatiquement à terme, sans action de la part des équipes IT. En pratique, l’attente peut être longue pour les boîtes déjà proches de la saturation.
Des boîtes qui restent figées à 50 Go
Passé le 1er juillet 2026, beaucoup d’administrateurs constatent que le quota de certaines boîtes aux lettres n’a pas bougé. Il y a deux manières de l’expliquer :
Le déploiement asynchrone : tant que le service n’a pas été ajouté et activé sur une boîte donnée, le quota reste à 50 Go. Comme ce provisionnement se fait tenant par tenant, et boîte par boîte, deux utilisateurs d’une même organisation peuvent afficher des quotas différents à un instant T.
Le quota fixé par un événement antérieur : Microsoft documente, dans un article de support dédié (KB4025170), un cas où les quotas ne sont pas augmentés automatiquement après un changement de licence. Lorsqu’une boîte a déjà eu un quota fixé (de façon explicite), ou qu’une licence à quota inférieur a été assignée avant une licence à quota supérieur, l’ancienne valeur reste appliquée et ne se met pas à jour toute seule.
Voyons comment se sortir d’affaire.
Augmenter le quota Exchange Online avec PowerShell
Pour les boîtes qui ne récupèrent pas les 100 Go d’elles-mêmes, vous pouvez jouer avec PowerShell pour modifier le quota sur certaines boîtes aux lettres, sans avoir à attendre. Surtout, ceci vous évite la méthode brutale qui consiste à retirer et à réassigner la licence sur un compte utilisateur. Microsoft décrit d’ailleurs cette méthode dans sa documentation.
Elle consiste à réécrire directement les seuils de la boîte concernée :
Set-Mailbox -Identity -ProhibitSendReceiveQuota 100GB -ProhibitSendQuota 99GB -IssueWarningQuota 98GB
Si les seuils ne se mettent toujours pas à jour, Microsoft recommande de vérifier que le paramètre UseDatabaseQuotaDefaults de la boîte est bien positionné sur false :
Set-Mailbox -Identity -UseDatabaseQuotaDefaults:$false
Pour agir sur plusieurs boîtes, ces commandes s’intègrent facilement dans un script. Les cmdlets font partie du module ExchangeOnlineManagement, dont l’installation et la connexion sont détaillées dans notre tutoriel pour installer le module Exchange Online V3.
Cette méthode a une limite. Si le service EXCHANGE_STORAGE_50GB n’est pas encore provisionné pour la boîte (statut PendingProvisioning visible via Microsoft Graph), Set-Mailbox ne relèvera pas le quota à 100 Go tant que le plan n’est pas actif. Pour ces boîtes, il faut attendre la fin du déploiement côté Microsoft, ou tenter de relancer le provisionnement de la licence.
C’est justement ce que propose un script que j’ai vu passer sur LinkedIn, publié par Arnaud Adam. Plutôt que de réécrire le quota, il diagnostique l’état du service de stockage, puis force la réévaluation des attributions de licence sur les boîtes en attente, via la commande Invoke-MgLicenseUser. La méthode me semble viable, donc je remets ici le script au propre, pour celles et ceux qui veulent tenter cette approche.
# =====================================================================
# Quota Microsoft 365 Business : forcer le passage de 50 Go a 100 Go
# Repere les boites encore a 50 Go, verifie le provisionnement du
# service de stockage, puis relance l’attribution de licence.
# =====================================================================
# — Connexions aux deux services ————————————
# Exchange Online : lecture des quotas de boites
Connect-ExchangeOnline
# Microsoft Graph : lecture des licences et reprocessing (droit en ecriture requis)
Connect-MgGraph -Scopes “User.ReadWrite.All”
# — 1. Etat des lieux ———————————————–
# Repartition de toutes les boites utilisateur par quota d’envoi/reception.
# Permet de voir d’un coup d’oeil combien sont encore bloquees a 50 Go.
Get-EXOMailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox -Properties ProhibitSendReceiveQuota |
Group-Object ProhibitSendReceiveQuota |
Format-Table Name, Count
# — 2. Diagnostic des boites encore a 50 Go ————————-
# Pour chaque boite plafonnee a 50 Go, on interroge le detail des licences
# et on isole le service de stockage additionnel (EXCHANGE_STORAGE_50GB)
# afin de connaitre son etat de provisionnement.
$report = Get-EXOMailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox -Properties ProhibitSendReceiveQuota |
Where-Object { $_.ProhibitSendReceiveQuota -like “50 GB*” } |
ForEach-Object {
# Recherche du plan de service de stockage sur le compte
$servicePlan = Get-MgUserLicenseDetail -UserId $_.UserPrincipalName |
Select-Object -ExpandProperty ServicePlans |
Where-Object ServicePlanName -eq “EXCHANGE_STORAGE_50GB”
# Statut : valeur de provisionnement si le plan existe, sinon “ABSENT”
[pscustomobject]@{
UPN = $_.UserPrincipalName
Status = if ($servicePlan) { $servicePlan.ProvisioningStatus } else { “ABSENT” }
}
}
# Affichage du rapport de diagnostic
$report | Format-Table
# — 3. Forcage : reprocessing des licences —————————
# On ne relance que les comptes dont le plan est en attente (PendingProvisioning).
# Invoke-MgLicenseUser declenche l’action reprocessLicenseAssignment cote Entra.
$report |
Where-Object Status -eq “PendingProvisioning” |
ForEach-Object { Invoke-MgLicenseUser -UserId $_.UPN }
# — 4. Controle (a relancer apres 15 a 30 minutes) ——————
# Nouvelle repartition des quotas pour verifier la remontee vers 100 Go.
Get-EXOMailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox -Properties ProhibitSendReceiveQuota |
Group-Object ProhibitSendReceiveQuota |
Format-Table Name, Count
N’hésitez pas à faire vos retours en commentaire et merci Arnaud pour l’astuce.
Cofondateur d’IT-Connect et Microsoft MVP “Cloud and Datacenter Management”. Mon obsession depuis près de 15 ans ? Rendre l’administration système et la cybersécurité accessibles, que vous soyez junior ou confirmé. Plus qu’un métier, l’IT est pour moi une véritable passion. J’accompagne au quotidien les sysadmins et les professionnels de l’IT dans leur montée en compétences et leur veille technique.
