Sevgili Trainturk Okurları,
Bu yazımızda bir mailbox’da “mail search” özelliğini inceliyor olacağız. Diyelim ki kurumumuzda bir kullanıcı yanlışlıkla atmaması gereken bir maili bir distrubution grubuna attı ve bu maili alan kulllanıcıların mailbox’ından atılan bu yanlış mailin silinmesi gerekiyor. Komutlarımızı çalıştırmak için test ortamımızı hazırlayalım. User1,user2,user3 kullanıcılarının uye olduğu “Mail Group” isimli mail distrubution grubunu oluşturalım. Kullanıcımız user4 bu gruba “saskin mail” subject’li maili atıyor olsun. User5 kullanıcısına gerekli hakları vererek atılan bu maili kullanıcıların mailbox’larından silelim. Bu işlemleri user5 kullanıcısı ile yapacağım için öncelikle ona gerekli hakları vermemiz için bu user’ı “Discovery Management” rol grubuna dahil edelim. Bu role grubu kullanıcıların mailbox’larına search etme ve maillleri silme hakkı verdiği için oldukça dikkatli verilmesi gereken bir haktır.
Add-RoleGroupMemeber -Identity “Discovery Management” -Member user5
Yukarıda ki cmdlet ile user5 kullanıcısına gerekli hakkı vermiş oluyoruz. Şimdi bu hakka sahip olup olmadığını anlamak için aşağıdaki cmdlet’i çalıştıralım. Görüldüğü üzere user5 kullanıcısına gerekli hak verilmiş bulunuyor.
Get-DistbutionGroupMember “Mail Group” | Search-Mailbox -SearchQuery “Subject:saskin mail” -deletecontent -force
Yukarıdaki cmdlet’i incelersek öncelikle Get-DistributionGroupMember “Mail Goup” komutu ile bu guba üye olan tüm kullanıcıların database objelerini döndürürüz. Sonra bu objeleri search-mailbox cmdlet’i içersine pipe işleminden geçiririz. Şimdi ise search-mailbox cmdlet ile kullandığımız parametreleri gözden geçirelim.
SearchQuery – Bu parametre ile mailin subject kısmında “saskin mail” yazan mailleri filtrelemiş oluyoruz.
TargetMailbox — Kriterimize uygun olan maillerin bir kopyasının “user5″ kullanıcısnın mailbox’ına kopyalanacağını belirtir.
TargetFolder — Kopyalalan bu maillerin bu parametrede belirtilen klasör adı altına kopyalanacağını belirtir.
Son olarak loglevel’in “basic” olacağını belirtiyoruz.
Yukarıda ki şekilde User5 kullanıcısının mailbox’ında yapılan search işleminin loglandığını ve aşağıdaki gibi kopyalandığını görebiliriz.
Son olarak eğer bu mailleri silmek istiyorsak aşağıdaki gibi -deletecontent parametresi de eklenerek komutumuz çalıştırılır.
Get-DistbutionGroupMember “Mail Group” | Search-Mailbox -SearchQuery “Subject:saskin mail” -deletecontent -force
Yukarıda komut da get-distrubution “Mail Goup” ile bu gruba ait olan kullanıcılar search-mailbox cmdlet’ine pipe işleminden geçiririlir. Maillin subject kısmı “Saskin Mail” olan mailler bu kullanıcıların mailboxlarından silinir. Eğer bir şekilde subject değiştirilmeden reply ve forward edilmiş ise de mailler silinecektir. Eğer işlemi tüm mailboxlar için yapmak istersek aşağıdaki komutu çalıştırmamız gerekir.
Get-DistbutionGroupMember “Mail Group” | Search-Mailbox -SearchQuery “Subject:saskin mail” -deletecontent -force
Bu komutları çalıştırırken çok dikkatli olmak, öncelikle test ortamımızda komutların denenmesi ve mailleri silmeden önce bu mailleri loglamak ve bir kopyasını bir mailbox’da toplamak herhangi bir hatadan dönülmesi için tavsiye edilmektedir.




