Exchange kullanıcı posta kutusundaki e-postayı arayın ve silin
Finans bölümünden bir kullanıcı yanlış kullanıcıya bir e-posta gönderdi ve e-postayı Exchange Server'dan silmenin mümkün olup olmadığını sordu. Kullanıcı e-postayı kuruluşun dahili bir kullanıcısına gönderdi. Panik var çünkü kullanıcının o e-postayı almaması gerekiyor. Bu mesajı kullanıcı gelen kutusundan silip silemeyeceğiniz sorulacaktır. Bu makale size PowerShell ile Exchange kullanıcı posta kutusundaki e-postaları nasıl arayacağınızı ve sileceğinizi öğretecektir.
Bilgi
Bu yazıda Amanda Morgan (amanda.morgan@exoip.com) kullanıcısı Christopher Payne (christopher.payne@exoip.com) kullanıcısına 10-09-2020 (9 Ekim 2020) tarihinde bir e-posta gönderdi. Konuyu bilmiyoruz. Ancak e-postayı ne zaman gönderdiğini tahmin ediyoruz. Saat 00:00 civarı. Görevi nasıl başaracağız?
E-postayı tüm posta kutularından arayıp silmek ister misiniz? Exchange kullanıcı posta kutularındaki iletileri arama ve silme makalesini okuyun.
E-posta konusunu al
Öncelikle Amanda'dan Christopher'a gönderilen tüm e-postaları aramamız gerekiyor. Gönderilen e-postaları bulursak, konuyu içeren o özel e-postayı alabiliriz. Başlamadan önce C:\sürücünüzde bir temp klasörü olduğundan emin olun. Değilse temp adında bir klasör oluşturun.
Belirli bir tarihi filtrele
Exchange Management Shell'i yönetici olarak çalıştırın. O gün Amanda'dan Christopher'a gönderilen tüm mesajların günlüğünü almak için Get-MessageTrackingLog cmdlet'ini kullanın.
[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 23:59:59" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Format-Table -AutoSize
Kullanıcı çok sayıda e-posta göndermişse söz konusu e-postayı bulmak kolay olmayacaktır. Neyse ki PowerShell güçlüdür ve sonucu beğenimize göre daha fazla filtreleyebiliriz. Bunu nasıl yapabileceğimize bakalım.
Belirli tarih ve saati filtreleyin
Bizim durumumuzda 00:00:00 - 00:30:00 arası belirli bir zamanı arayın.
[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 00:30:00" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Format-Table -AutoSize
Timestamp EventId Source Sender Recipients MessageSubject
--------- ------- ------ ------ ---------- --------------
10/9/2020 12:02:09 AM HAREDIRECTFAIL SMTP Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM RECEIVE SMTP Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM AGENTINFO AGENT Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM SEND SMTP Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM RECEIVE STOREDRIVER Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM SUBMIT STOREDRIVER Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per month
10/9/2020 12:02:09 AM DELIVER STOREDRIVER Amanda.Morgan@exoip.com {Christopher.Payne@exoip.com} Earnings per monthOut-GridView cmdlet'ini kullanın
Çıktıyı ayrı bir penceredeki etkileşimli tabloya göndermek için Out-GridView cmdlet'ini kullanın.
[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 00:30:00" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Out-GridViewÇıktı aşağıdaki gibi gösterilecektir.
CSV dosyasına aktar
Bilgilerin bir CSV dosyasına aktarılmasını istiyoruz.
[PS] C:\>Get-MessageTrackingLog -Start "10/09/2020 00:00:00" -End "10/09/2020 00:30:00" -Sender "amanda.morgan@exoip.com" -Recipients "christopher.payne@exoip.com" -ResultSize Unlimited | Select Timestamp,EventId,Source,Sender,@{Name='Recipients';Expression={[string]::join(";", ($_.recipients))}},MessageSubject | Export-Csv "c:\temp\get_list.csv" -NoTypeInformationCSV dosyasını favori uygulamanızla açın. Örneğimizde Microsoft Excel.
Artık konuyu bildiğimize göre Amanda'nın e-postasını Christopher'ın posta kutusundan kaldırabiliriz.
Exchange'den e-postayı sil
Outlook'ta Christopher kullanıcısı olarak oturum açtığımızda Amanda'dan gelen e-postayı görebiliriz.
E-postayı Christopher'ın posta kutusundan silmek için aşağıdaki komutu çalıştırın. Y ile onaylayın ve Enter tuşuna basın.
[PS] C:\>Search-Mailbox -Identity "christopher.payne@exoip.com" -SearchQuery 'Subject:"Earnings per month"' -DeleteContent
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.
Confirm
Deleting content from mailboxes christopher.payne@exoip.com
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): Y
RunspaceId : 615c7ca9-d995-4908-800f-be75565ece89
Identity : exoip.local/Company/Users/Finance/Christopher Payne
TargetMailbox :
Success : True
TargetFolder :
ResultItemsCount : 1
ResultItemsSize : 7.732 KB (7,918 bytes)Onaylamak istemiyorsanız, e-postayı Exchange kullanıcı posta kutusundan silmek için aynı komutu çalıştırın, ancak bu kez -Force anahtarını kullanın. Komutu çalıştıracak ve onaylamanızı istemeden e-postayı kaldıracaktır.
[PS] C:\>Search-Mailbox -Identity "christopher.payne@exoip.com" -SearchQuery 'Subject:"Earnings per month"' -DeleteContent -Force
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.
RunspaceId : 615c7ca9-d995-4908-800f-be75565ece89
Identity : exoip.local/Company/Users/Finance/Christopher Payne
TargetMailbox :
Success : True
TargetFolder :
ResultItemsCount : 1
ResultItemsSize : 7.732 KB (7,918 bytes)E-posta, posta kutusundan başarıyla silindi.
Sonuçları doğrulayın
Christopher'ın posta kutusuna bir bakın. E-posta silinir.
E-postanın tamamen silineceğini bilmek güzel. Kullanıcının Silinmiş Öğeler'ine taşınmayacaktır. Ayrıca kullanıcı onu silinen öğelerden kurtaramaz.
E-posta, Exchange Server'daki kullanıcı posta kutusundan silinir. Bu işinize yaradı mı?
Devamını oku: Exchange Server'da dahili posta akışını test edin »
Çözüm
Bu makalede, PowerShell kullanarak Exchange kullanıcı posta kutusundan e-postanın nasıl silineceğini öğrendiniz. Gönderilen e-posta konusunu bulmak için arama sonucunu PowerShell ile hassaslaştırarak başladık. Bundan sonra, e-postayı kullanıcının posta kutusundan kaldırmak için -DeleteContent anahtarını da içeren Search-Mailbox cmdlet'ini çalıştırdık.
Bu makaleyi beğendiniz mi? Ayrıca Exchange Server'da kullanıcı posta kutusu oluşturma konusunu da beğenebilirsiniz. Bizi takip etmeyi ve bu yazımızı paylaşmayı unutmayın.




