Toplam boyuttan daha küçük posta kutuları nasıl dışa aktarılır
Exchange Server'da toplam boyutu verilen miktardan daha küçük olan posta kutuları almak istiyoruz. Bu, posta kutularını başka bir veritabanına taşımadan önce mükemmel bir yoldur. Bu makalede, toplam boyuttan küçük posta kutularını nasıl dışa aktaracağınızı öğreneceksiniz.
Toplam boyuttan daha küçük posta kutularını dışa aktar PowerShell betiği
Export-MailboxesTotalSize.ps1, komut dosyasında tanımladığınız toplam toplam boyuttan daha küçük olan tüm posta kutularını alır. Her posta kutusu için aşağıdaki bilgileri toplar:
Ekran adı
ToplamBoyutGB
KullanıcıPrincipalName
-
BirincilSMTPAdresi
SMTPAliasAdresler
Not: Komut dosyasında toplam 100 GB boyut tanımlarsanız ve iki posta kutusu 50 GB boyutundaysa yalnızca bu iki posta kutusu gösterilir. Bunun nedeni, her iki posta kutusunun toplamının toplam 100 GB olmasıdır.
Dışa Aktarma Posta KutularıTotalSize PowerShell betiğini hazırlayın
Exchange Server (C:) sürücüsünde iki klasör oluşturun:
Sıcaklık
Kodlar
Export-MailboxesTotalSize.ps1 PowerShell betiğini indirin ve C:\scripts klasörüne yerleştirin. Komut dosyası, CSV dosyasını C:\temp klasörüne aktaracaktır.
Komut dosyasını çalıştırırken hataları önlemek için dosyanın engellemesinin kaldırıldığından emin olun. PowerShell betiğini çalıştırırken dijital olarak imzalanmamış hata makalesinde daha fazlasını okuyun.
Diğer bir seçenek de aşağıdaki kodu kopyalayıp Not Defteri'ne yapıştırmaktır. Ona Export-MailboxesTotalSize.ps1 adını verin ve C:\scripts klasörüne yerleştirin.
<#
.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:\temp\Mailboxes.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
$selectedMailboxes = @()
$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 }
$selectedMailboxes += [PSCustomObject]@{
'DisplayName' = $mailbox.DisplayName
'TotalSizeGB' = $mailbox.TotalItemSizeGB
'UserPrincipalName' = $upn
'PrimarySmtpAddress' = $smtpPrimary
'SMTPAliasAddresses' = $smtpAliases -join ", "
}
$currentTotalSizeGB += $mailboxSizeGB
# 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
$selectedMailboxes | 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
$selectedMailboxes | 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 Green21. Satır: Toplam boyutu düzenleyin
Satır 24: Veritabanı adını düzenleyin
-
Satır 27: Dışa aktarılan CSV dosyasının yolunu düzenleyin
Dışa Aktarma-MailboxesTotalSize PowerShell betiğini çalıştır
Exchange Management Shell'i yönetici olarak çalıştırın. Komut dosyaları klasörünün yolunu değiştirin. Bundan sonra Export-MailboxesTotalSize.ps1 komut dosyasını çalıştırın.
PS C:\> cd c:\scripts\
PS C:\scripts> .\Export-MailboxesTotalSize.ps1Çıktı, topladığı toplam boyutu GB cinsinden gösterecektir.
Total Size: 1.18 GBOut-GridView'da posta kutularını kontrol edin
Out-GridView, posta kutularını içeren sütunları ve bunların GB cinsinden toplam boyutunu gösterir.
Posta kutuları raporu CSV dosyasını aç
Export-MailboxesTotalSize.ps1 PowerShell betiği, toplam boyuttan daha küçük olan posta kutularını CSV dosyasına aktaracaktır. C:\temp yolunda Mailboxes.csv dosyasını bulun.
CSV dosyasını favori uygulamanızla açın. Bu örnekte, Microsoft Excel'dir.
Toplam boyut raporundan daha küçük olan posta kutuları harika görünüyor.
Not: Tüm posta kutularını CSV dosyasına aktarmak ve tüm posta kutusu boyutlarını ve daha fazla bilgiyi almak ister misiniz? PowerShell ile Exchange'deki tüm kullanıcıların posta kutusu boyutunu alma makalesini okuyun.
Çözüm
Powershell ile toplam boyuttan küçük posta kutularını nasıl dışa aktaracağınızı öğrendiniz. Export-MailboxesTotalSize.ps1 PowerShell betiğiyle toplam boyuttan küçük posta kutuları raporunu alın ve iyice inceleyin.
Bu makaleyi beğendiniz mi? CSV dosyasıyla Exchange posta kutularını geçirme seçeneğini de beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.

