Exchange Server dan Email Silme İşlemi

Exchange Server da exchange powershell kullanarak email ya da emailleri uzaktan rahatlıkla aratıp silebilirsiniz.

Emailin başlığında, içerisinde ya da eklenti dosyasının isminde belirli kelimeler geçen emaillerde bu işlemi uygulayabilirisiniz.

Arama ve silme işlemini tek bir kullanıcı için yapabileceğiniz gibi tüm kullanıcılar, belirli bir veri tabanındaki tüm kullanıcılar ya da belirli bir OU altındaki tüm kullanıcılar için de yapabilirsiniz.

Bulma ve silme işleminin en önemli kısmı bu işlemi yapacak olan exchange yöneticisinin gerekli yetkilere sahip olmasıdır.  Mailbox Search ve Mailbox Import Export yetkilerini ilgili rol grubuna atayarak başlıyoruz.

Tüm işlemleri yukarıda belirttiğim üzere exchange powershell üzerinden yapacağız. “Ortac Demirel Email Silme” başlığı ile atılan bir emaili bir ve birçok kullanıcı posta kutusundan sileceğiz.

Öncelikle aşağıdaki komutu vererek silmek istediğimiz email için arama yapıyoruz. Direkt silme işlemine de geçilebilir tabi.

Search-Mailbox -Identity “ortac” -SearchQuery ‘Subject:”Ortac Demirel Email Silme”‘ -TargetMailbox administrator -TargetFolder “SearchAndDeleteLog” -LogOnly -LogLevel Full

Bu işlem şunu yapmaktadır; ortac kullanıcısının posta kutusunda başlığında “Ortac Demirel Email Silme” kelimesi geçen bir email aramaktadır. Bulursa eğer ekran çıktısında görüldüğü üzere “ResultImtemsCount” bölümüne bulunma sayısını yazmaktadır.

Ayrıca administrator posta kutusuna “SearchandDeleteLog” isminde bir klasör açıp içerisine arama ile ilgili bir rapor eklemektedir.

En fazla 10000 kayıt getirmektedir. Bu limiti kaldırabilirsiniz.

Her hangi bir silme işlemi gerçekleşmemektedir.

Tüm posta kutularında aramak için aşağıdaki komutu verebiliriz.

Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery ‘Subject:”Ortac Demirel Email Silme”’ -TargetMailbox administrator -TargetFolder “SearchAndDeleteLog” -LogOnly -LogLevel Full

Başlık yerine emailin içinde aramak için body komutu kullanılabilir

Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery ‘Body:”Ortac Demirel Email Silme”’ -TargetMailbox administrator -TargetFolder “SearchAndDeleteLog” -LogOnly -LogLevel Full

Eklerde aramak için ise;

Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery attachment:trojan* -TargetMailbox administrator -TargetFolder “SearchAndDeleteLog” -LogOnly -LogLevel Full

Bir OU nun altındaki kullanıcılarda aramak için;

Get-Mailbox -OrganizationalUnit “domain.local/Users” -resultsize unlimited | Search-Mailbox -SearchQuery ‘Subject:”Ortac Demirel Email Silme”’  -TargetMailbox administrator -TargetFolder “SearchAndDeleteLog” -LogOnly -LogLevel Full

Silmek için ise DeleteContent powershell komutunu kullanacağız.

Tek bir kullanıcıdan silmek için;

Search-Mailbox -Identity “ortac” –SearchQuery  ‘Subject:”Ortac Demirel Email Silme”’  -DeleteContent

Tüm kullanıcılardan silmek için;

Get-Mailbox -ResultSize unlimited | Search-Mailbox   –SearchQuery  ‘Subject:”Ortac Demirel Email Silme”’  -DeleteContent

Bu komutlar da aramada olduğu gibi çeşitlendirilebilir. Tek bir kaynaktan gelen ve sadece belirli zamanda gelen mesajlara uygulanabilir.

Önemli Not: Binlerce kullanıcıda bu işlemi yapmak istediğinizde ve o kişilerinde oldukça fazla emaili var ise ResultSize unlimited komutları yeterli olmayabilir.

Bu tür bir durumda tüm kullanıcıları bir değişkene atayıp foreach döngüsü ile bu işlemi yapmanız gerekmektedir.

Kaynak:

https://technet.microsoft.com/tr-tr/library/ff459253%28v=exchg.150%29.aspx?f=255&MSPPError=-2147217396

Paylaş

Leave a Reply

Your email address will not be published. Required fields are marked *