Jak wyeksportować skrzynki pocztowe mniejsze niż całkowity rozmiar

Chcemy uzyskać skrzynki pocztowe w Exchange Server, których łączny rozmiar jest mniejszy niż podana ilość. Jest to doskonały sposób przed migracją skrzynek pocztowych do innej bazy danych. W tym artykule dowiesz się, jak wyeksportować skrzynki pocztowe mniejsze niż całkowity rozmiar.

Eksportuj skrzynki pocztowe mniejsze niż całkowity rozmiar skryptu PowerShell

Funkcja Export-MailboxesTotalSize.ps1 pobierze wszystkie skrzynki pocztowe o rozmiarze mniejszym niż całkowity rozmiar zdefiniowany w skrypcie. Dla każdej skrzynki pocztowej zbiera następujące informacje:

  1. Nazwa wyświetlana
  2. Całkowity rozmiar GB
  3. Nazwa główna użytkownika
  4. Podstawowy adresSMTP
  5. Adresy SMTPAlias

Notatka:Jeśli w skrypcie zdefiniujesz całkowity rozmiar 100 GB, a dwie skrzynki pocztowe będą miały rozmiar 50 GB, zostaną wyświetlone tylko te dwie skrzynki pocztowe. Dzieje się tak dlatego, że sumując obie skrzynki pocztowe, mamy łącznie 100 GB.

Przygotuj skrypt Export-MailboxesTotalSize PowerShell

Utwórz dwa foldery na serwerze Exchange(C:)prowadzić:

  • Temp
  • Skrypty

Pobierz i umieść w nim skrypt Export-MailboxesTotalSize.ps1 PowerShellC:skryptyfalcówka. Skrypt wyeksportuje plik CSV doC:tempfalcówka.

Upewnij się, że plik jest odblokowany, aby zapobiec błędom podczas uruchamiania skryptu. Przeczytaj więcej w artykule Błąd braku podpisu cyfrowego podczas uruchamiania skryptu PowerShell.

Inną opcją jest skopiowanie i wklejenie poniższego kodu do Notatnika. Podaj nazwęEksportuj-MailboxesTotalSize.ps1i umieść go wC:skryptyfalcówka.

<#
    .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
  • Linia 21:Edytuj całkowity rozmiar
  • Linia 24:Edytuj nazwę bazy danych
  • Linia 27:Edytuj ścieżkę pliku eksportu CSV

Uruchom skrypt PowerShell Export-MailboxesTotalSize

Uruchom Exchange Management Shell jako administrator. Zmień ścieżkę do folderu skryptów. Następnie uruchom skrypt Export-MailboxesTotalSize.ps1.

PS C:> cd c:scripts
PS C:scripts> .Export-MailboxesTotalSize.ps1

Dane wyjściowe pokażą całkowity rozmiar w GB, który zebrał.

Total Size: 1.18 GB

Sprawdź skrzynki pocztowe w Out-GridView

JakiśOut-GridViewpokaże kolumny ze skrzynkami pocztowymi i ich całkowitym rozmiarem w GB.

Otwórz plik CSV raportujący o otwartych skrzynkach pocztowych

Skrypt Export-MailboxesTotalSize.ps1 PowerShell wyeksportuje do pliku CSV skrzynki pocztowe mniejsze niż całkowity rozmiar. Znajdź w ścieżce plik Mailboxes.csvC:temp.

Zobacz także:Blokuj logowanie z udostępnionych skrzynek pocztowych

Otwórz plik CSV ze swoją ulubioną aplikacją. W tym przykładzie jest to Microsoft Excel.

Skrzynki pocztowe mniejsze niż raport o rozmiarze całkowitym wyglądają świetnie.

Notatka:Czy chcesz wyeksportować wszystkie skrzynki pocztowe do pliku CSV i uzyskać pełny rozmiar ich skrzynek pocztowych oraz więcej informacji? Przeczytaj artykuł Uzyskaj rozmiar skrzynek pocztowych wszystkich użytkowników w Exchange za pomocą PowerShell.

Wniosek

Nauczyłeś się, jak eksportować skrzynki pocztowe mniejsze niż całkowity rozmiar za pomocą programu Powershell. Uzyskaj raport dotyczący skrzynek pocztowych mniejszych niż całkowity rozmiar za pomocą skryptu PowerShell Export-MailboxesTotalSize.ps1 i dobrze się temu przyjrzyj.

Czy podobał Ci się ten artykuł? Możesz także zainteresować się migracją skrzynek pocztowych Exchange za pomocą pliku CSV. Nie zapomnij nas obserwować i udostępnić ten artykuł.

Related Posts