Exchange : comment lister les boîtes aux lettres par taille ?
I. Présentation
Sur un serveur Exchange, on peut obtenir facilement la taille du fichier EDB correspondant à la base de données qui regroupe l'ensemble des boites aux lettres. En revanche, pour lister les boîtes aux lettres en indiquant à chaque fois la taille de la BAL, c'est moins simple, enfin bon il suffit d'avoir la commande magique qui va permettre d'obtenir cette liste !
C'est ce que nous allons voir dans ce tutoriel à l'aide d'Exchange Management Shell car la Console de gestion Exchange ne permet pas d'obtenir cette information à moins de passer dans les propriétés de chaque BAL.
Note : la commande utilisée dans ce tutoriel fonctionne également sur Microsoft 365 / Office 365 avec Exchange Online.
II. Lister les BAL Exchange par taille
Sur votre serveur Exchange, commencez par lancer l'Exchange Management Shell pour que l'on puisse utiliser les commandes PowerShell associées 😉 - Si vous êtes sur Exchange Online, ouvrez une console PowerShell et initiez une connexion aux services de messagerie Office 365 comme expliqué dans cet article : Connexion Exchange Online
Ensuite, nous allons utiliser deux commandes. Premièrement, Get-Mail pour récupérer l'ensemble des boîtes aux lettres (-ResultSize Unlimited) et Get-MailboxStatistics pour récupérer des infos notamment la taille de la BAL, pour chacune des BALs référencées sur l'Exchange.
Pour que la sortie soit parlante, on va effectuer un tri décroissant sur la taille grâce à la propriété TotalItemSize via Sort-Object. Enfin, pour la sortie on affichera seulement deux propriétés : DisplayName et TotalItemSize, autrement dit le nom de la personne et la taille de la boîte.
Ce qui donne :
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object -Descending -Property TotalItemSize | Select-Object DisplayName, TotalItemSize
Voici un exemple de sortie :
Si l'on veut afficher seulement le Top 10 des boîtes aux lettres les plus grosses, il ne faut pas modifier la valeur de -ResultSize car nous souhaitons trouver le Top 10 parmi toutes les BALs.... On va limiter le nombre de résultats affichés directement dans Select-Object en ajoutant le paramètre "-First 10".
Ce qui donne :
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Sort-Object -Descending -Property TotalItemSize | Select-Object DisplayName, TotalItemSize -First 10
Bien sûr, vous pouvez remplacer "10" par le nombre de votre choix. A vous de jouer !
Bonjour,
ce script est très utile.
est-il possible de le scheduler pour mettre le resultat dans un fichier et l’envoyer par mail ?
J’ai fait plusieurs tests KO
Dans le tâche je lance c:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe et en argument
le chemin du script suivi du -sendmail
d’avance merci
Richard
je pense qu’il faut ajouter cette commande en début de script pour être en environnment exchange
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
Bonjour,
Si vous avez réussi ou toujours des traces, est-il possible de m’envoyer ce script?
Merci
Bonjour,
Si votre script est toujours d’actualité, est t’il possible de me l’envoyer ?
Merci
Merci pour l’info
Peut on avoir également affiché la base de données où se trouvent ces bals si plusieurs BdD il y a?
Merci
Hello,
Là je n’ai pas d’Exchange sous la main pour checker, mais, si tu fais la commande ci-dessous tu n’as pas une propriété « database » qui ressort ?
Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | gm
Bonne journée
Florian
La recherche me retourne le message « WARNING: Les résultats disponibles sont plus nombreux que ceux actuellement affichés. Pour afficher tous les résultats, augmentez la valeur du paramètre ResultSize »
Mon entreprise contenant plus de 2000 utilisateurs, savez vous comment je je contourner la limite des 1000 resultats maximum ?
Bonjour,
Je souhaiterai savoir, qu’elle est la commande pour supprimer des mails dans un dossier d’une BAL d’un utilisateur.
Merci