Forum
Exchange Server 2010 üzerinde bazı durumlar için kullanıcı posta kutularından bir mail' i silmek veya bir kullanıcı posta kutusunun tamamen export edilmesi gerekebilir. Özellikle inceleme yani teftiş tarzı bir iç veya dış denetime tabi tutulan kurumlarda PST export işlemi sık kullanılmaktadır. Benzer şekilde büyük organizasyonlarda yanlışlıkla gönderilen bir mailin tüm posta kutularından silinmesi istenebilir. Veya bu durum Journal - Arşiv mantığı ile çalışan sistemlerde bazen döngüye giren ve birden mevcut mail trafiğinizi 10 katına kadar çıkaran maillerin silinmesi içinde kullanılır.
Özetle şu ana kadar ihtiyacınız olmamış ise belki pek canlandıramıyor olsanızda aşağıda paylaşacağım süreçler benim başıma pek çok kez geldi ve bu komutları bilmek o anda hayat kurtardı 🙂
İlk olarak tek bir kullancı posta kutusundan belirli bir başlıktaki mailleri silme konusuna değineceğim. Bu benim başıma Journal için yani şirketin tüm maillerinin ( gelen - giden - içeride dolaşan ) bir kopyasının journal posta kutusuna gönderildiği bir şirket organizasyonunda geldi.
Sorun bu posta kutusu inanılmaz bir şekilde şişmeye başladı, no-reply ile bağlayan ve gerçekte posta kutusu olmayan bir mail adresinden gönderilen bir mail yine şirket içerisinde posta kutusu olan ancak Out Of Office ayarlayan bir kullanıcıdan bu bilgi mailine cevap dönmesi ile başlıyor. Bu kısım biraz detaylı ama işin özü ; journal posta kutusunda inanılmaz bir şekilde şişen yani loop' a giren başlıktaki mailleri silmem gerekli.
Bunun için tabiki bir yetki gerekli ve ilk olarak kendime bu yetkiyi veriyorum. Bu yetki Mail Import Export yetkisi olur mailbox içerisinde arama yapmamıda sağlamaktadır.
New-ManagementRoleAssignment -Role "Mailbox Import Export" -User huadmin
ardından ben huadmin kullanıcısı ile powershell açıyorum ve aşağıdaki komutu çalıştırıyorum
Search-Mailbox Journal -SearchQuery Subject:"Otomatik Yanıt:" -deletecontent
Yukarıdaki komut sayesinde "Journal" isimli kullanıcı posta kutusu içerisindeki konusu "Otomatik Yanıt:" olan tüm mailleri siliyorum.
İkinci durum bunun bir benzerinin tüm posta kutularında gerçekleştirilmesi, bu durumda ise yanlışlıkla gönderilmiş bir mailin tüm posta kutularından silinmesi gerekmektedir. Malum mail geri çekme özelliği her zaman çalışmaz 🙂
komut aşağıdaki gibidir
Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery Subject:"Otomatik Yanıt:" -DeleteContent -force
bu komut ise tüm posta kutularındaki konusu otomatik yanıt olan mailleri silecektir.
Son senaryo ise PST Export
Kullanıcı mailboxlarındaki mailleri PST ye çıkarmak için yapmanız gereken adımları sizlere kısaca özetlemek istiyorum.
Öncelikle böyle bir işlemi yapmak için Exchange Server 2010 üzerinde "Mailbox Export Import" yetkisine sahip olmanız gerekmektedir.
Bu nedenle komutları çalıştırmaya başlamadan önce ilk olarak ECP üzerinden kendi kullanıcınız veya bu komutu kullanacak olan kullanıcı için bu yetliyi veriniz
Bu yetkiden sonra PST dosyasını nereye alacağınıza karar veriyorsunuz. Genellikle file server üzerinde olacağı için bir klasör açıyoruz ve onu paylaştırıyoruz.
Paylaştırdığınız klasörü hem güvenlik nedenleri ile hemde komutun sağlıklı çalışması için özellikle yetkilendirmeliyiz.
yani diğer kullanıcılar bu pst yi görmesin diye bir kere Domain Users gibi standart kullanıcı gruplarını hem paylaşım hemde NTFS izinlerinden kaldırın ( ACL )
Ardından bu powershell komutunun çalışması için minimum vermeniz gereken yetki aşağıdaki hesap içindir
"Exchange Trusted Subsystem"
Bu yetkiyi vermezseniz eğer Exchange Server PST dosyasını bu dizine yazamaz.
Ancak siz bu PST dosyasını Exchange Server üzerinde bir yere alacak iseniz bu şekilde bir izin vermenize gerek yoktur ( ancak yinede paylaşım üzerinden yolu yazmayı unutmayın )
komut aşağıdaki gibi
New-MailboxExportRequest -Mailbox hakanu -FilePath "\\FILESRV\PST\HAKAN.PST"
bu komut ile export işlemi başlar ve aşağıdaki komut ile bu işlemi takip edebiliriz
Get-MailboxExportRequest
ve yine işimiz bittikten sonra bu isteği silebiliriz
Remove-MailboxExportRequest
Bu komut sizden bir kimlik ister ( ID ) bunu öğrenmek için ilk komuta fl ile sorgu yaptırıp ID yi öğrenebilirsiniz sonra aşağıdaki gibi ID ile birlikte silebilirsiniz
Remove-MailboxExportRequest -Identity "cozumpark.com/muhasebe/hakanuzuner\Ma
ilboxExport"
Bu yazının devamı niteliğindeki aşağıdaki link' i inceleyebilirsiniz ( toplu mail silme ve Exchange 2007 hakkında bilgi için )
http://www.hakanuzuner.com/index.php/exchange-server-2007-2010-multi-mailbox-search.html
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Eline sağlık hocam. Çok faydalı bir paylaşım.
Aslında yeni bir playlaşım değil ama parça parça paylaşmıştım, biri hakanuzuner.com diğer burada biri başka yerde böyle olunca ararken zor oluyor malum banada lazım oluyor ondan tek bir yer ki tabiki ÇözümPark' ta birleştirdim 🙂
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Çok iyi fikir hocam. Okurken anımsamıştım bende. İyi oldu böyle. Eline sağlık.
hocam merhaba,
sitede araştırdım ancak bulamadım.
Exchange'de yanlış atılan maili tüm mailboxlardan nasıl sileriz acaba ?
yardımcı olursanız sevinirim.
teşekkürler.
Güven.
Güven bey bu postu okumadınız herhalde ? Bu postun amacı bu zaten.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Hakan Bey,
Bütün kullanıcılara bir e-posta gönderdim, gönderdiğim mailde hata olduğunu fark ettim, e-posta geri çağırma çalışmadı,
öncelikle "New- ManagementRoleAssignment -Role "Mailbox Import Export" -User kullanıcım" komutuyla kendi admin kullanıcıma yetki verdim.
Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery Subject:"mailin konusu" -DeleteContent -force komutunu kullandım
her hangi bir hata vermiyor, fakat kimsenin posta kutusundan da silmiyor. nereye bakmam gerekir?
Ürün ve SP sürümü nedir ?
Ayrıca hata vermez rapor verir, şu kadar mail buldum sildim diye.
ek olarak yetki verdiğiniz kullanıcı ile log off log on oldunuz değil mi yani aynı powershell içerisinde değil yetki verip o kullanıcıya geçiş yapıp ilerlemelisiniz
diyelimki siz adminsiniz ve bu yetkiyi admin kullanıcısına yine admin kullanıcısı ile verdiniz bu durumda o pwershell i bir kapatıp açın lütfen.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Hocam,
Ürün, Exchange Server 2010 SP2,
New- ManagementRoleAssignment -Role "Mailbox Import Export" -admin
komutunu çalıştırdıktan sonra aşağıdaki uyarıları aldım,
The term 'New-' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:5
+ New- <<<< ManagementRoleAssignment -Role "Mailbox Import Export" -admin
+ CategoryInfo : ObjectNotFound: (New-:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
shell'i kapattım, sunucuyu restart ettim, tekrar aynı kullanıcı ile logon oldum tekrar exchange shell'i açtım,
Search-Mailbox Journal -SearchQuery Subject:"silmek istediğim maillin konusu" -deletecontent
komutunu çalıştırınca;
The term 'Search-Mailbox' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:15
+ Search-Mailbox <<<< Journal -SearchQuery Subject:"silmek istediğim mailin konusu" -deletecontent
+ CategoryInfo : ObjectNotFound: (Search-Mailbox:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
yukarıdaki mesajlarla karşılaşıyorum,
nerede hata yapıyorum Hocam?
Hasan bey benim gönderdiğim komut aşağıdaki gibi
New- ManagementRoleAssignment -Role "Mailbox Import Export" -User huadmin
doğrusu ise
New-ManagementRoleAssignment -Role "Mailbox Import Export" -User huadmin
yani new- den sonra boşluk yok, ancak ben bu kadar ciddi bir operasyonu yapacaksanız temelde pek çok kez powershell çalıştırdığınızı düşündüm çünkü bu hatayı görür görmez anlamanız gereken bir durumdu
The term 'New-' is not recognized
Neyse işin özü durum bu ama anladığım kadarı ile powershell tecrübeniz yok bu nedele lütfen bilen bir kişi ile bu işlere girişin çok ciddi sonuçlar doğurabilir.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Hakan Bey, powershell hiç kullanmadım, fakat new den sonra nasıl boşluk olmuş hakikaten anlamadım 🙂 çünkü kopyaladım ve yapıştırdım diye hatırlıyorum. Biz problem yaşadıkça cozumpark.com'dan çözüm bularak çalıştırdık şimdiye kadar. Neyse Üstat bir Exchange eğitimine gitmemiz vacip oldu.
İlginize teşekkür ederim..
Evet gelin bizim eğitimlere bekleriz 🙂
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Maili silmek istediğiniz sunucu şirket dışında mı? Yani sunucu sizin yönetiminizde değil ise bunu yapamazsınız. Ama yok sunucu şirket içerisinde ise aşağıdaki link size yardımcı olacaktır
http://www.hakanuzuner.com/index.php/exchange-server-2007-2010-multi-mailbox-search.html
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Verdiğim linki kullanabilirsiniz.
Yani sizin durumunuz ilkine uyuyor, mail sistemi sizde olduğu için her türlü mail silme işlemini yapabiliriz.
örnek bir komut
Search-Mailbox hakan -SearchQuery "(sent:09/06/13..09/06/13) AND (from:[email protected])" -deletecontent
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Cevap için teşekkür ederim verdiğiniz yöntem işe yaradı komut aşağıdaki gibi
Search-Mailbox eser.cebi -SearchQuery "from:[email protected]" -deletecontent
Peki bu komutu tüm kullanıcılar için nasıl yazarım
postumda yazmıştım zaten, yukarıda, gözünden kaçmış sanırım
Get-Mailbox -resultsize unlimited | Search-Mailbox -SearchQuery Subject:"Otomatik Yanıt:" -DeleteContent -force
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************