Exchange Server‘da kullanıcıların veya dağıtım gruplarının posta kutularında yanlışlıkla gönderilen e-postaları bulmak ve gerekirse silmek için PowerShell komutları kullanılabilir.
Genellikle "Search-Mailbox" veya "New-ComplianceSearch" cmdlet'leri bu tür işlemler için tercih edilir.
Bu işlemler için genellikle “Search-Mailbox – New-ComplianceSearch” setlerini kullanabilirsiniz.
Bu işlemleri On-Prem Exchange Server veya Exchange Online üzerinde gerçekleştireceğiniz kullanıcı için bazı yetki tanımlamaları yapılması gerekmektedir. (Administrator Kullanıcısı hariç)
Exchange Server’da Search-Mailbox İçin Gerekli Yetkilendirme
Kullanacağınız hesaba belirli rollerin atanması gerekmektedir. Bu atamayı Exchange Management Shell (EMS) kullanarak ya da Exchange Control Panel (ECP) üzerinden gerçekleştirebilirsiniz. İlgili roller şunlardır:
- Mailbox Import Export
- Mailbox Search
Search-Mailbox: Bu cmdlet, belirli kriterlere göre posta kutularında e-posta araması yapmanıza olanak tanır.
DeleteContent: Arama sonucunda bulunan içerikleri silmek için kullanılır.
New-ComplianceSearch: Genellikle Exchange Online'da uyumluluk aramaları için kullanılır.
Exchange Server’da PowerShell Kullanarak Search-Mailbox ve New-ComplianceSearch Yetkilendirme
Aşağıdaki PowerShell komutları, belirtilen kullanıcıya gerekli rolleri atamak için kullanılabilir:
New-ManagementRoleAssignment -User "cengizyilmaz" -Role "Mailbox Import Export"
New-ManagementRoleAssignment -User "cengizyilmaz" -Role "Mailbox Search"
- Mailbox Import Export: Posta kutusu içeriğini dışa ve içe aktarmak için gerekli.
- Mailbox Search: Posta kutularında arama yapma yetkisi.
Exchange Online’da New-ComplianceSearch için Yetkilendirme
Exchange Online üzerinde bulunan mail hesaplarınız içerisinde arama yapmak için gerekli yetkilendirmeyi aşağıdaki komutlar ile sağlayabilirsiniz.
Add-RoleGroupMember "Discovery Management" -Member [email protected]
New-RoleGroup "Mailbox Import-Export Management" -Roles "Mailbox Import Export"
Add-RoleGroupMember "Mailbox Import-Export Management" -Member [email protected]
Exchange Search-Mailbox Kullanımı ve Posta Arama
Exchange‘de posta kutularında e-posta araması yapmak için PowerShell’in Search-Mailbox
cmdlet’ini kullanabilirsiniz. Bu yöntemler, belirli kriterlere göre e-posta araması yapmanızı sağlar ve işlem için iki farklı araç sunar.
PowerShell’in Search-Mailbox
cmdlet’i, daha özelleştirilmiş ve detaylı arama imkanı sunar.
Exchange Server’da bir Mailbox İçin Arama Yapmak İçin Kullanılan Komut:
Search-Mailbox -Identity "[email protected]" -SearchQuery 'Subject:"Test Maili"'
Bu komut, belirtilen posta kutusunda “Test Maili” konulu e-postaları arar.
Exchange Server’da tüm Posta Kutularında Arama Yapmak İçin Kullanılan Komut:
Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery 'Subject:"Test Maili"'
Bu komut, Exchange Server ortamındaki tüm posta kutularında “Test Maili” konulu e-postaları arar.
Exchange Online'da,Search-Mailbox
komut seti kullanıldığında, Microsoft tarafından bu komutun kullanımıyla ilgili olarak bir uyarı alabilirsiniz. Microsoft, daha hızlı sonuçlar elde etmek içinNew-ComplianceSearch
veNew-ComplianceSearchAction
cmdlet'lerini kullanmanızı önermektedir.
Exchange Online’da Search-Mailbox komut setini kullanırsanız aşağıdaki gibi bir uyarı alabilirsiniz, Microsoft daha hızlı bir sonuç vermesi için
New-ComplianceSearchNew-ComplianceSearchAction
setini kullanmanızı önermektedir.WARNING: On July 1, 2020, the Search-Mailbox cmdlet is being retired and Microsoft Support will no longer provide assistance. See https://go.microsoft.com/fwlink/?linkid=2113221 to learn more. WARNING: The Search-Mailbox cmdlet returns up to 10000 results per mailbox if a search query is specified. To return more than 10000 results, use the New-MailboxSearch cmdlet or the In-Place eDiscovery & Hold console in the Exchange Administration Center.
WARNING: On July 1, 2020, the Search-Mailbox cmdlet is being retired and Microsoft Support will no longer provide assistance. See https://go.microsoft.com/fwlink/?linkid=2113221 to learn more. WARNING: The Search-Mailbox cmdlet returns up to 10000 results per mailbox if a search query is specified. To return more than 10000 results, use the New-MailboxSearch cmdlet or the In-Place eDiscovery & Hold console in the Exchange Administration Center.
Exchange Server’da DeleteContent Kullanımı
Search-Mailbox seti ile arama yaptığınız mail itemslerini silebilirsiniz veya silmek isteyebilirsiniz. -deletecontent parametresi kullandığınızda işlemi gerçekleştirmek için sizden ikinci bir onay isteyecektir bu onay işlemini kaldırmak için -force parametresini kullanabilirsiniz.
Belirli bir kişiden gönderilmiş tüm postaların silinmesini isterseniz, kullanmanız gereken komut seti aşağıdaki gibidir;
Get-Mailbox –Server
cy-exc01 –ResultSize unlimited | Search-Mailbox -SearchQuery 'from:"
[email protected]"' –DeleteContent –Force
Search-Mailbox parametresinde bir sınırlandırma bulunmaktadır, sadece 10.000 öge bulabilmektedir.
Bir dağıtım grubu üyelerine gelen içeriği silmek için aşağıdaki seti kullanabilirsiniz;
Get-DistributionGroupMember "DL Adı" | Search-Mailbox -SearchQuery:"Test Maili" -DeleteContent -Force:$True
Exchange Server’da DeleteContent ile Mail Silme
Exchange Server kullanarak, Search-Mailbox
cmdlet’ini kullanarak posta kutularında arama yapabilir ve istenmeyen ya da yanlış gönderilmiş e-postaları silebilirsiniz. -deletecontent
parametresi, bulunan e-postaların silinmesi için kullanılır ve bu işlem için genellikle ikinci bir onay ister. Eğer onay adımını atlamak istiyorsanız, -force
parametresini kullanabilirsiniz.
- Eğer belirli bir kullanıcıdan gelen tüm e-postaları silmek istiyorsanız, aşağıdaki komut seti kullanılabilir:
Get-Mailbox –Server cy-exc01 –ResultSize unlimited | Search-Mailbox -SearchQuery 'from:"[email protected]"' –DeleteContent –Force
Bu komut, belirtilen sunucudaki tüm posta kutularını inceler, belirli bir göndericiden gelen e-postaları bulur ve onları onay istemeden siler.
Dağıtım Grubu Üyelerine Gelen İçeriği Silmek
Bir dağıtım grubuna gelen belirli içeriği silmek için aşağıdaki PowerShell komutu kullanılabilir:
Get-DistributionGroupMember "DL Adı" | Search-Mailbox -SearchQuery:"Test Maili" -DeleteContent -Force:$True
Bu komut, belirtilen dağıtım grubunun üyelerinin posta kutularında “Test Maili” konulu e-postaları arar ve bulduğu tüm içeriği onay istemeden siler.
Search-Mailbox Kullanım Sınırlamaları
Search-Mailbox
cmdlet'i ile yapılan aramalarda, maksimum 10.000 öge bulunabilir. Eğer bu limiti aşmak gerekiyorsa, daha geniş kapsamlı arama yapmak içinNew-MailboxSearch
cmdlet'i veya Exchange Admin Center içindeki In-Place eDiscovery & Hold aracını kullanmanız önerilir