Dağıtım listeleri ve üyelerini CSV olarak dışarıya aktarma

Dağıtım listeleri ve üyelerini CSV olarak dışarıya aktarma

Dağıtım listeleri aynı maili birden fazla kişiye iletmek için en yalın ve kullanışlı yöntemlerden biridir. Bir dağıtım listesi mail adresi oluşturursunuz ve o adrese gelen tüm mailer listeye üye yaptığınız kişilere ulaştırılır.

Bu işin genel tanımı ve güzel yanı. Kötü yanı nedir? Mail kullanımı ve gruplara üye olma konusunda biraz bilinçsiz üreyebiliyoruz 😊 Bu kötü davranış da bizi herkesin her gruba/listeye üye olduğu bir yapıya itiyor.

Doğal olarak bu listeleri bir temize çekmek gerekiyor fakat çok fazla dağıtım listesi ve mail grubu varsa üyelikleri tespit etmek ve düzenlemek çok zor oluyor. Bu noktada imdadımıza powershell yetişiyor.

Biz işi kolay yoldan yapmak için Exchange Online Powershell’e bağlanacağız ve aşağıda paylaşacağım betiği çalıştırıp istediğimiz sonuçları bir CSV dosyası olarak çıktı alacağız.

Önce Exchange Online’a powershell ile bağlanalım. Powershell version 2’yi kurmak ve etkinleştirmek için aşağıdaki komutları çalıştırın. Eğer bu modül bilgisayarınızda kurulu ile direkt olarak bağlantı kurma komutunu çalıştırabilrisiniz.

Install-Module -Name ExchangeOnlineManagement -RequiredVersion 2.0.5

Set-ExecutionPolicy RemoteSigned

Import-Module ExchangeOnlineManagement

Şimdi, bağlantı kurmak için aşağıdaki komutu kullanabilirsiniz.

Connect-ExchangeOnline -UserPrincipalName admin@contoso.com -ShowProgress $true

Bilgisayarınızın C:\ dizininde ExportList adında bir klasör oluşturun. Aşağıdaki powershell betiğini ExportDistList.ps1 ismiyle bu dizine kaydedebilirsiniz.

$Result=@()
$groups = Get-DistributionGroup -ResultSize Unlimited
$totalmbx = $groups.Count
$i = 1
$groups | ForEach-Object {
Write-Progress -activity "Processing $_.DisplayName" -status "$i out of $totalmbx completed"
$group = $_
Get-DistributionGroupMember -Identity $group.Name -ResultSize Unlimited | ForEach-Object {
$member = $_
$Result += New-Object PSObject -property @{
GroupName = $group.DisplayName
Member = $member.Name
EmailAddress = $member.PrimarySMTPAddress
RecipientType= $member.RecipientType
}}
$i++
}

$Result | Export-CSV "C:\Exportlist\Dist-list-members.csv" -NoTypeInformation -Encoding UTF8

Powershell üzerinde betiği kaydettiğiniz dizine gidin ve .\ExportDistList.ps1 komutunu çalıştırın.

Ardından ExportList klasörü altında dağıtım listeleri ve posta etkin güvenlik gruplarının üyelerini barındıran bir csv çıktısını bulabilirsiniz.

kaynak: www.pcvita.com

1 Comment

  1. Hasan Şalcıav

    Merhaba,

    Bilgi için çok teşekkür ederim.
    Buraya grup mail adresi de eklense güzel olur.

    İyi çalışmalar.

Leave a Reply