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 month

Out-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" -NoTypeInformation

CSV 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.

İlgili makaleler