Exchange/Microsoft 365'te Etkin Olmayan (Kullanılmayan) Dağıtım Listelerini Bulun


Exchange kuruluşunuz veya Exchange Online (Microsoft 365) kiracınız içinde yüzlerce Dağıtım Grubu (Dağıtım Listeleri, DL'ler) oluşturabilirsiniz. Artık kullanılmayan dağıtım listeleri, Exchange yöneticisi tarafından periyodik olarak kaldırılmalıdır. Bu yazıda, Exchange'de kullanılmayan ve boş dağıtım gruplarını nasıl bulacağınızı ve sileceğinizi göstereceğiz.

Kullanılmayan dağıtım listelerini bulmak, etkin olmayan AD kullanıcılarını veya bilgisayarları bulmaktan farklıdır. Bir Exchange DL, bir nesnenin en son ne zaman kullanıldığını izlemek için LastLogonDate/LastLogonTimeStamp gibi bir özniteliğe sahip değildir. E-postaların belirli bir dağıtım grubuna gönderilip gönderilmediğini belirlemek için Exchange izleme günlüklerini kullanabilirsiniz.

PowerShell ile Exchange'deki Boş Dağıtım Gruplarını Listeleme

Dağıtım grubunda hiç kullanıcı yoksa, buna artık gerek kalmayabilir.

Bir Exchange kuruluşunda boş dağıtım gruplarını bulmak için PowerShell'i kullanabilirsiniz. PowerShell kullanarak Exchange Sunucunuza bağlanın ve aşağıdaki tek satırı çalıştırın:

Get-DistributionGroup -ResultSize Unlimited |Where-Object { (Get-DistributionGroupMember -Identity $_.Name -ResultSize Unlimited).Count -eq 0} | select Name, PrimarySmtpAddress

Ortaya çıkan dağıtım grupları listesini analiz edin ve ihtiyacınız olmayan DL'leri kaldırın (gizleyin).

Remove-DistributionGroup

emretmek.

Benzer şekilde, boş dinamik DL'leri bulmak için Get-DynamicDistributionGroup'u kullanabilirsiniz:

Get-DynamicDistributionGroup -ResultSize Unlimited | Where-Object { (Get-Recipient -RecipientPreviewFilter (Get-DynamicDistributionGroup -Identity $_.Identity).RecipientFilter).count -eq 0} | select Name, PrimarySmtpAddress

Exchange Server'da Etkin Olmayan Dağıtım Grupları Nasıl Bulunur?

Get-MessageTrackingLog cmdlet'i, aktarım günlüklerini analiz etmek için Exchange Server'da kullanılır. Örneğin, aşağıdaki komutu kullanarak son 90 gün içinde bir dağıtım grubuna gönderilen e-posta mesajlarının sayısını sayabilirsiniz:

Get-MessageTrackingLog -Start (Get-Date).AddDays(-90) -ResultSize unlimited -Recipients "dl-it_admins@a-d.site"| measure-object

Exchange Server'da e-posta izleme günlüklerinin saklama süresini 180 güne çıkarmak için aşağıdaki komutu kullanabilirsiniz:

Set-TransportService MUN-Ex01 -MessageTrackingLogMaxAge 180.00:00:00

Kullanılmayan dağıtım gruplarını bulmak için aşağıdaki PowerShell betiğini kullanabilirsiniz:

  1. Bir etki alanındaki tüm dağıtım gruplarının listesini alın ve bunu bir CSV dosyasına aktarın:

    Get-DistributionGroup | Select-Object PrimarySMTPAddress | Sort-Object PrimarySMTPAddress | Export-CSV all-exchange-dls.csv -notype
  2. Son 30 gün içinde e-posta alan DL'leri listeleyin:

    Get-MessageTrackingLog -Start (Get-Date).AddDays(-30) -EventId Expand -ResultSize Unlimited |Sort-Object RelatedRecipientAddress | Group-Object RelatedRecipientAddress |Sort-Object Name | Select-Object @{label= "PrimarySmtpAddress";expression={$_.Name}}, Count | Export-CSV exchange-active-dls.csv -notype

    Exchange kuruluşunuzun taşıma rolü olan birden fazla sunucusu varsa (bunların bir listesini

    Get-TransportService

    ), her birini aramanız gerekecek:

    Get-MessageTrackingLog -Server Exh01 …
  3. Ardından iki listeyi karşılaştırın ve etkin olmayan grupları bulun:

    $alldl = Import-CSV -Path all-exchange-dls.csv
    $activedl = Import-CSV -Path exchange-active-dls.csv
    Compare-Object $alldl $activedl -Property PrimarySmtpAddress -SyncWindow 500 |Sort-Object PrimarySmtpAddress | Select-Object -Property PrimarySmtpAddress |Export-Csv inactive-dls.csv -NoType
  4. Kullanılmayan dağıtım gruplarını Genel Adres Listesinde gizleyebilirsiniz:

    $currentdate = Get-Date
    $notes = "Inactive: hidden in the address list at $currentdate"
    $inactiveDL = Import-CSV -Path inactive-dls.| foreach-object
    {
    Set-Group -identity $_.PrimarySmtpAddress -notes $notes
    Set-DistributionGroup -identity $_.PrimarySmtpAddress -HiddenFromAddressListsEnabled $true
    }

Microsoft 365'te Etkin Olmayan Dağıtım Listelerini Tanımlayın (Exchange Online)

Microsoft 365'te, Exchange Yönetim Merkezi'ni (Posta Akışı -> İleti İzleme) veya kullanarak e-posta günlüklerini izleyebilirsiniz.

Start-HistoricalSearch

veya

Get-MessageTrace

PowerShell cmdlet'leri. Son komutun önemli bir sınırlaması vardır - yalnızca önceki 10 gün içinde gönderilen e-postaları aramanıza izin verir. Bu bizim görevimiz için uygun değil.

Exchange Online PowerShell (EXO) modülünü yükleyin ve kiracınıza bağlanın:

Connect-ExchangeOnline

Aşağıdaki komut, bir dağıtım listesinin SMTP adresine gönderilen e-postaların sayısını görüntüler:

Start-HistoricalSearch -ReportTitle "Global Admin DL" -StartDate 04/20/2023 -EndDate 06/20/2023 -ReportType MessageTrace -RecipientAddress global_admins@ a-d.site -NotifyAddress maxb@a-d.site

Tek bir kiracı tarafından kullanılabilecek, 24 saatlik süre içinde en fazla 250 geçmiş araması vardır.

Etkin olmayan DL'leri aramaya başlamak için aşağıdaki komut dosyasını kullanabilirsiniz:

foreach ($group in Get-DistributionGroup)
{
Start-HistoricalSearch -ReportTitle $group.PrimarySmtpAddress -StartDate 04/20/2023 -EndDate 06/21/2023 -ReportType MessageTrace -RecipientAddress $group.PrimarySmtpAddress -NotifyAddress maxb@a-d.site
}

Arama tamamlandığında, DL'ye kaç tane e-posta gönderildiğini kontrol edebilirsiniz:

Get-HistoricalSearch "Global Admin DL"

Mesaj listesi boşsa (

Rows = 0

), dağıtım grubunun son 90 gün içinde Exchange Online'da kullanılmadığı anlamına gelir. Böyle bir dağıtım listesi etkin değil olarak kabul edilebilir.

Exchange Online'da Dağıtım Listeleri yerine Microsoft 365 Gruplarını kullanabilirsiniz.

İlgili makaleler