PowerShell ile tüm SMTP adreslerini listeleyin
Bazen tüm SMTP adreslerini Exchange Server'da veya Exchange Online'da listelemek istersiniz. İkincil SMTP adreslerini posta kutularından toplu olarak kaldırmak istediğiniz için bilgi toplamak için bu listeye ihtiyacınız vardır. Büyük harfli SMTP birincil e-posta adresidir ve küçük harfli smtp, takma ad adresi olarak da bilinen ikincil e-posta adresidir. E-posta adresleri Active Directory'de proxy adresleri olarak yapılandırılır. Bu yazımızda PowerShell ile tüm SMTP adreslerinin nasıl listeleneceğini öğreneceksiniz.
Exchange Yönetim Merkezi'nde SMTP adreslerini bulun
Exchange Yönetim Merkezi'nde oturum açın ve bir posta kutusunun özelliklerine gidin.
Menüde e-posta adresi'ni tıklayın.
Yapılandırılmış e-posta adreslerini görüntüleyin.
Bir e-posta adresini ekleyebilir, değiştirebilir veya silebilirsiniz. Kullanıcı için yapılandırılmış iki SMTP e-posta adresi vardır.
Active Directory'de SMTP adreslerini bulma
Active Directory Kullanıcıları ve Bilgisayarları'nı başlatın. Bundan sonra Gelişmiş Özellikler'i etkinleştirin.
Kullanıcı nesnesi özelliklerine gidin ve özellik düzenleyici sekmesine tıklayın.
ProxyAdresleri özelliğini bulun.
Daha önce Exchange Yönetim Merkezi'nde gördüğümüz gibi aynı iki SMTP e-posta adresi değer olarak gösterilir.
SMTP adreslerini her iki yerde de gördünüz. SMTP adresleri de dahil olmak üzere tüm posta kutularının bir listesi nasıl alınır? Bir sonraki bölümde bununla ilgili daha fazlasını okuyun.
Tüm birincil SMTP adreslerini listeleyin
Exchange Management Shell'i yönetici olarak çalıştırın veya Exchange Online PowerShell'e bağlanın.
Not: Aşağıdaki komutlar şirket içi Exchange Server ve Exchange Online için çalışır.
Birincil SMTP adresine sahip posta kutularını listelemek için Get-Mailbox cmdlet'ini çalıştırın.
[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress | Sort-Object DisplayName
DisplayName PrimarySmtpAddress
----------- ------------------
Administrator Administrator@exoip.com
Ali Tajran Ali.Tajran@exoip.com
Amanda Morgan Amanda.Morgan@exoip.com
Anna Welch Anna.Welch@exoip.com
Benetiz Anees Benetiz.Anees@exoip.com
Boris Campbell Boris.Campbell@exoip.com
Carl Kelly Carl.Kelly@exoip.com
Christopher Payne Christopher.Payne@exoip.com
Discovery Search Mailbox MsExchDiscoveryMailboxD919BA05-46A6-415f-80AD-7E09334BB852@exoip.com
Elizabeth Roberts Elizabeth.Roberts@exoip.com
Emma Underwood Emma.Underwood@exoip.com
Hannah Walker Hannah.Walker@exoip.com
Jake Cornish Jake.Cornish@exoip.comKuruluştaki tüm nesneleri almak istiyorsanız Get-Recipient cmdlet'ini çalıştırın. Bu, posta kutularını, dağıtım gruplarını, güvenlik gruplarını ve kişileri alacaktır.
[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress | Sort-Object DisplayName
Exchange organizasyonumuzda aynı posta kutusu için birden fazla e-posta adresimiz bulunmaktadır. Bir sonraki bölümde bu ikincil e-posta adreslerini listeleyeceğiz.
Tüm SMTP e-posta adreslerini listeleyin
Önceki bölümde Exchange organizasyonundaki her posta kutusunun birincil SMTP adresini listeledik. Artık ikincil SMTP adreslerini içeren bir listeye sahip olmak istiyoruz. Bunu mevcut PowerShell cmdlet'ine nasıl ekleyeceğiz?
Script bloğunu kullanacağız. Komut dosyası bloğu, tek bir birim olarak kullanılabilecek bir ifadeler veya ifadeler koleksiyonudur. Bunu kullanarak tüm SMTP e-posta adreslerini toplayacaktır. SMTP'nin birincil SMTP olmadığından küçük harflerle yazıldığını unutmayın. Birincil SMTP büyük harflerle yazılır.
[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName
DisplayName PrimarySmtpAddress EmailAddresses
----------- ------------------ --------------
Administrator Administrator@exoip.com Administrator@exoip.local
Ali Tajran Ali.Tajran@exoip.com
Amanda Morgan Amanda.Morgan@exoip.com Amanda.Morgan@alitajran.com
Anna Welch Anna.Welch@exoip.com
Benetiz Anees Benetiz.Anees@exoip.com
Boris Campbell Boris.Campbell@exoip.com Boris.Campbell@contoso.com, Boris.Campbell@alitajran.com
Carl Kelly Carl.Kelly@exoip.com
Christopher Payne Christopher.Payne@exoip.com
Discovery Search Mailbox MsExchDiscoveryMailboxD919BA05-46A6-415f-80AD-7E09334BB852@exoip.com DiscoverySearchMailbox{D919BA05-46A6-415f-80AD-7E09334BB852}@exoip.local
Elizabeth Roberts Elizabeth.Roberts@exoip.com
Emma Underwood Emma.Underwood@exoip.com
Hannah Walker Hannah.Walker@exoip.com
Jake Cornish Jake.Cornish@exoip.comKuruluştaki tüm nesneleri almak istiyorsanız Get-Recipient cmdlet'ini çalıştırın. Bu, posta kutularını, dağıtım gruplarını, güvenlik gruplarını ve kişileri alacaktır.
[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayNameBilgileri bir ızgara görünümü penceresine çıkarmak için komutun sonuna OutGrid-View cmdlet'ini ekleyin.
[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Out-GridView[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Out-GridViewSonuçları CSV dosyasına aktarın
Sonuçları C:\temp yolundaki bir CSV dosyasına aktarın.
[PS] C:\>Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Export-CSV "C:\temp\List_SMTP_Addresses.csv" -NoTypeInformation -Encoding UTF8[PS] C:\>Get-Recipient -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress, @{Name="EmailAddresses";Expression={($_.EmailAddresses | Where-Object {$_ -clike "smtp*"} | ForEach-Object {$_ -replace "smtp:",""}) -join ","}} | Sort-Object DisplayName | Export-CSV "C:\temp\List_SMTP_Addresses.csv" -NoTypeInformation -Encoding UTF8Dışa aktarılan CSV dosyasını Microsoft Excel veya başka bir CSV dosya düzenleyicisi/görüntüleyicisi ile açın.
Her şey harika görünüyor! Umarım tüm e-posta adreslerini bir CSV dosyasına aktarmanıza yardımcı olmuştur.
Devamını oku: Posta kutusu klasörü izinlerini CSV dosyasına aktar »
Çözüm
PowerShell ile Exchange Server ve Exchange Online'da tüm SMTP adreslerinin nasıl listeleneceğini öğrendiniz. SMTP adreslerine sahip posta kutularının listesini almak için komutları çalıştırın. Listeyi CSV'ye aktarın ve Microsoft Excel ile gözden geçirin.
Bu makaleyi beğendiniz mi? Ayrıca PowerShell ile eksik SMTP adresini bulma konusunu da beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.


