Nous souhaitons obtenir des boîtes aux lettres sur Exchange Server dont la taille totale est inférieure au montant indiqué. C'est un excellent moyen avant de migrer les boîtes aux lettres vers une autre base de données. Dans cet article, vous apprendrez comment exporter des boîtes aux lettres inférieures à leur taille totale.
Export-MailboxesTotalSize.ps1 obtiendra toutes les boîtes aux lettres inférieures à la taille totale que vous définissez dans le script. Pour chaque boîte aux lettres, il rassemble les informations suivantes :
- Nom d'affichage
- Taille totale Go
- NomPrincipalUtilisateur
- Adresse SMTP primaire
- SMTPAliasAdresses
Note:Si vous définissez une taille totale de 100 Go dans le script et que deux boîtes aux lettres font 50 Go, seules ces deux boîtes aux lettres seront affichées. En effet, la somme des deux boîtes aux lettres représente un total de 100 Go.
Préparer le script PowerShell Export-MailboxesTotalSize
Créez deux dossiers sur le serveur Exchange(C:)conduire:
- Température
- Scripts
Téléchargez et placez le script PowerShell Export-MailboxesTotalSize.ps1 dansC:scriptsdossier. Le script exportera le fichier CSV vers leC:tempdossier.
Assurez-vous que le fichier est débloqué pour éviter les erreurs lors de l'exécution du script. Pour en savoir plus, consultez l'article Erreur non signée numériquement lors de l'exécution du script PowerShell.
EN RAPPORT:Bloquer la connexion à partir des boîtes aux lettres partagées
Une autre option consiste à copier et coller le code ci-dessous dans le Bloc-notes. Donnez-lui le nomExporter-MailboxesTotalSize.ps1et placez-le dans leC:scriptsdossier.
<#
.SYNOPSIS
Export-MailboxesTotalSize.ps1
.DESCRIPTION
Export mailboxes that are less than the defined total size.
.LINK
www.alitajran.com/export-mailboxes-total-size-less-than/
.NOTES
Written by: ALI TAJRAN
Website: www.alitajran.com
LinkedIn: linkedin.com/in/alitajran
.CHANGELOG
V1.00, 10/22/2023 - Initial version
#>
# Define the target total size in GB
$targetTotalSizeGB = 100
# Specify the mailbox database name to search within
$mailboxDatabaseName = "DB01"
# Define the export file path
$exportFilePath = "C:tempMailboxes.csv"
# Get a list of mailbox sizes within the specified mailbox database
$mailboxSizes = Get-Mailbox -ResultSize Unlimited -Database $mailboxDatabaseName |
Get-MailboxStatistics |
Select-Object DisplayName, @{Name = "TotalItemSizeGB"; Expression = { [math]::Round($_.TotalItemSize.Value.ToBytes() / 1GB, 2) } } |
Sort-Object TotalItemSizeGB
# Initialize variables
$Report = [System.Collections.Generic.List[Object]]::new()
$currentTotalSizeGB = 0
# Iterate through mailboxes to find a combination that adds up to the target total size
foreach ($mailbox in $mailboxSizes) {
$mailboxSizeGB = $mailbox.TotalItemSizeGB
# Check if adding this mailbox keeps the total size within or equal to the target size
if (($currentTotalSizeGB + $mailboxSizeGB) -le $targetTotalSizeGB) {
$selectedMailbox = Get-Mailbox $mailbox.DisplayName -ResultSize Unlimited
$upn = $selectedMailbox.UserPrincipalName
$smtpPrimary = $selectedMailbox.PrimarySmtpAddress
$smtpAliases = $selectedMailbox.EmailAddresses | Where-Object { $_.PrefixString -eq "smtp" -and $_.SmtpAddress -ne $smtpPrimary } | ForEach-Object { $_.SmtpAddress }
$ReportLine = [PSCustomObject]@{
'DisplayName' = $mailbox.DisplayName
'TotalSizeGB' = $mailbox.TotalItemSizeGB
'UserPrincipalName' = $upn
'PrimarySmtpAddress' = $smtpPrimary
'SMTPAliasAddresses' = $smtpAliases -join ", "
}
# Add the report line to the List
$Report.Add($ReportLine)
# Check if the current total size equals the target size or exceeds it
if ($currentTotalSizeGB -ge $targetTotalSizeGB) {
break
}
}
}
# Display the selected mailboxes in an interactive table
$Report | Sort-Object TotalSizeGB -Descending | Out-GridView -Title "Selected Mailboxes"
Write-Host "Total Size: $currentTotalSizeGB GB" -ForegroundColor Cyan
# Export the selected mailboxes to a CSV file
$Report | Sort-Object TotalSizeGB -Descending | Export-Csv -Path $exportFilePath -NoTypeInformation -Encoding UTF8
# Display a message indicating successful export
Write-Host "File exported successfully to $exportFilePath" -ForegroundColor Green- Ligne 21 :Modifier la taille totale
- Ligne 24 :Modifier le nom de la base de données
- Ligne 27 :Modifier le chemin du fichier CSV d'exportation
Exécuter le script PowerShell Export-MailboxesTotalSize
Exécutez Exchange Management Shell en tant qu'administrateur. Modifiez le chemin d'accès au dossier des scripts. Après cela, exécutez le script Export-MailboxesTotalSize.ps1.
PS C:> cd c:scripts
PS C:scripts> .Export-MailboxesTotalSize.ps1La sortie affichera la taille totale en Go collectée.
Total Size: 1.18 GBVérifier les boîtes aux lettres dans Out-GridView
UnVue hors grilleaffichera les colonnes avec les boîtes aux lettres et leur taille totale en Go.

Fichier CSV du rapport sur les boîtes aux lettres ouvertes
Le script PowerShell Export-MailboxesTotalSize.ps1 exportera les boîtes aux lettres inférieures à la taille totale dans un fichier CSV. Recherchez le fichier Mailboxes.csv dans le cheminC:temp.
Ouvrez le fichier CSV avec votre application préférée. Dans cet exemple, il s’agit de Microsoft Excel.

Les boîtes aux lettres inférieures à la taille totale du rapport sont superbes.
Note:Voulez-vous exporter toutes les boîtes aux lettres vers un fichier CSV et obtenir toute la taille de leur boîte aux lettres et plus d'informations ? Lisez l'article Obtenir la taille de la boîte aux lettres de tous les utilisateurs dans Exchange avec PowerShell.
Conclusion
Vous avez appris à exporter des boîtes aux lettres inférieures à la taille totale avec Powershell. Obtenez le rapport sur les boîtes aux lettres inférieures à la taille totale avec le script PowerShell Export-MailboxesTotalSize.ps1 et examinez-le attentivement.
Avez-vous apprécié cet article ? Vous aimerez peut-être également Migrer les boîtes aux lettres Exchange avec un fichier CSV. N’oubliez pas de nous suivre et de partager cet article.

![Comment déverrouiller l'iPhone sans opérateur [iMEI / Carrier Unlocker / R-Sim]](https://elsefix.com/tech/afton/wp-content/uploads/cache/2025/08/unlock-iphone-without-carrier-1.jpg)










![Excel plante lors de l'enregistrement d'un fichier [Réparer]](https://elsefix.com/tech/tejana/wp-content/uploads/2024/12/Excel-crashes-when-saving-a-file.png)