Exchange Online İleti İzlemeleri Şirket İçi Aramalardan Farklıdır


Bulutta E-postaları İzleme

On yıl önce Paul Cunningham, taşıma hizmetinden geçerken günlüğe kaydedilen e-postaların ayrıntılarını bulmak için Exchange Server mesaj izleme günlüklerini PowerShell ile nasıl arayacağınızı anlattı. Bu makale, Exchange Online'da bulunmayan Get-MessageTrackingLog cmdlet'ine odaklanmaktadır. Get-MessageTrace cmdlet'inin işin ağır kısmını üstlendiği bulutta Exchange Online ileti izlemelerini çalıştırmak ve iletileri bulmak için farklı bir tekniğe ihtiyaç vardır. Exchange yönetici merkezi GUI'si aracılığıyla bir mesaj izleme çalıştırabilseniz de, izlemeleri PowerShell aracılığıyla çalıştırmak, sonuçları diğer cmdlet'lere yönlendirmenize, raporlar oluşturmanıza vb. olanak tanır (burada, harici e-posta).

Unutulmaması gereken önemli bir nokta da Get-MessageTrace'in, iletiler gönderildikten sonra on güne kadar iletilerle ilgili bilgileri döndürebilmesidir. Bundan sonra Start-HistoricalSearch cmdlet'inin kullanılması gerekir. Diğer bir nokta da, Exchange Online'ın iletinin ilerleyişini takip edebilmesi için ileti gönderildikten sonra birkaç dakika geçmesi gerektiğidir.

Paul'un makalesi, test senaryosu olarak üç alıcıya gönderilen maaş bordrosu raporuyla ilgili bir e-postayı kullandı. Şekil 1 benim örneğimi göstermektedir:

Gönderenin E-posta Adresine Göre Exchange Çevrimiçi Mesaj Takibi

Herhangi bir aramanın getirdiği sonuçlar, öğeleri bulmak için kullanılan ölçütlere bağlıdır. Başlangıç olarak, kullanıcının birincil SMTP adresini Gönderen parametresine ekleyerek kullanıcının gönderdiği mesajı bulabiliriz.

Get-MessageTrace -SenderAddress Terry.Hegarty@office365itpros.com -StartDate (Get-Date).AddHours(-1) -EndDate (Get-Date)

Received            Sender Address                    Recipient Address                  Subject
--------            --------------                    -----------------                  -------
11/06/2022 10:24:22 Terry.Hegarty@office365itpros.com james.ryan@office365itpros.com     Attention: May Payroll Details
11/06/2022 10:24:22 Terry.Hegarty@office365itpros.com chris.bishop@office365itpros.com   Attention: May Payroll Details
11/06/2022 10:24:22 Terry.Hegarty@office365itpros.com brian.weakliam@office365itpros.com Attention: May Payroll Details

Bu bilgiler, Exchange aktarım sisteminin iletiyi nasıl işlediğine ilişkin olarak Get-MessageTrackingLog cmdlet'inin sunduğu bilgilerin aynısını vermez. Belirli bir işleme durumuna sahip mesajları döndürmek için aramaya Durum parametresini ekleyebilirsiniz. Örneğin, bu komut yalnızca başarıyla teslim edilen iletileri döndürür. Diğer durum değerleri arasında Başarısız, Beklemede ve Karantinaya Alındı yer alır.

Get-MessageTrace -SenderAddress Terry.Hegarty@office365itpros.com -StartDate (Get-Date).AddHours(-1) -EndDate (Get-Date) -Status Delivered

İşlemedeki adımlar hakkında daha fazla ayrıntı görmek için ileti izleme tanımlayıcısına ihtiyacımız var. Get-MessageTrace siz istemediğiniz sürece mesaj izleme tanımlayıcısını göstermez:

Get-MessageTrace -SenderAddress Terry.Hegarty@office365itpros.com -StartDate (Get-Date).AddHours(-1) -EndDate (Get-Date) | Format-table MessageTraceId, SUbject, RecipientAddress

MessageTraceId                       Subject                        RecipientAddress
--------------                       -------                        ----------------
1b312cde-f274-409e-7350-08da4b948d74 Attention: May Payroll Details james.ryan@office365itpros.com
1b312cde-f274-409e-7350-08da4b948d74 Attention: May Payroll Details chris.bishop@office365itpros.com
1b312cde-f274-409e-7350-08da4b948d74 Attention: May Payroll Details brian.weakliam@office365itpros.com

Artık bir mesaja ne olduğunu öğrenmek için Get-MessageTraceDetail'i çalıştırabiliriz.

Get-MessageTraceDetail -MessageTraceId  1b312cde-f274-409e-7350-08da4b948d74 -RecipientAddress James.Ryan@office365itpros.com

Date                   Event                Detail
----                   -----                ------
11/06/2022 10:24:23    Receive              Message received by: PAXPR04MB8621.eurprd04.prod.outlook.com
11/06/2022 10:24:23    Submit               The message was submitted.
11/06/2022 10:24:27    Deliver              The message was successfully delivered.

İletileri Alıcı E-posta Adresine Göre İzleme

Alıcıya göre arama, mesaj alıcısının türü (TO, CC veya BCC) ne olursa olsun çalışır. Burada Chris Bishop'u (bir CC adresi) arıyoruz ve arama başarılı oluyor:

Get-MessageTrace -RecipientAddress Chris.Bishop@office365itpros.com -StartDate (Get-Date).AddHours(-1) -EndDate (Get-Date) | Format-List

Message Trace ID  : 1b312cde-f274-409e-7350-08da4b948d74
Message ID        : <DB6PR04MB3158B4FBF516094B399D23C0B4A99@DB6PR04MB3158.eurprd04.prod.outlook.com>
Received          : 11/06/2022 10:24:22
Sender Address    : Terry.Hegarty@office365itpros.com
Recipient Address : chris.bishop@office365itpros.com
From IP           : 2a01:cb1d:5b0:1500:fd9f:cfb5:a3e6:e6cb
To IP             :
Subject           : Attention: May Payroll Details
Status            : Delivered
Size              : 57013

Alıcı adreslerini virgülle ayırarak birden fazla alıcı SMTP adresi belirleyebilirsiniz. Bunu yaptığınızda koşul “ve” değil “veya” olur. Yani alıcılardan herhangi birine gönderilen her mesaj sonuçlara dahil ediliyor. Bu durumda, biri bordro e-postasındaki alıcı olan iki posta kutusuna gönderilen mesajları ararız. İleti izleme iki iletiyi bulur:

Get-MessageTrace -RecipientAddress Chris.Bishop@office365itpros.com, Ben.Owens@office365itpros.com -StartDate (Get-Date).AddHours(-1) -EndDate (Get-Date) | fl

Message Trace ID  : 92827190-e015-4faf-586f-08da4b972420
Message ID        : <DB6PR04MB315846EE7664C474A7435554B4A99@DB6PR04MB3158.eurprd04.prod.outlook.com>
Received          : 11/06/2022 10:42:54
Sender Address    : Terry.Hegarty@office365itpros.com
Recipient Address : ben.owens@office365itpros.com
From IP           : 2a01:cb1d:5b0:1500:fd9f:cfb5:a3e6:e6cb
To IP             :
Subject           : Business Development Meeting
Status            : Delivered
Size              : 12933

Message Trace ID  : 1b312cde-f274-409e-7350-08da4b948d74
Message ID        : <DB6PR04MB3158B4FBF516094B399D23C0B4A99@DB6PR04MB3158.eurprd04.prod.outlook.com>
Received          : 11/06/2022 10:24:22
Sender Address    : Terry.Hegarty@office365itpros.com
Recipient Address : chris.bishop@office365itpros.com
From IP           : 2a01:cb1d:5b0:1500:fd9f:cfb5:a3e6:e6cb
To IP             :
Subject           : Attention: May Payroll Details
Status            : Delivered
Size              : 57013

Joker Karakter Değerleri veya Kısmi Eşleşmeler için Mesaj İzleme

Get-MessageTrackingLog cmdlet'i, SenderAddress ve RecipientAddress parametrelerine göre joker karakter aramalarını desteklemez. Ancak Get-MessageTrace şuna benzer aramalar gerçekleştirebilir (örnek, tanımlanan dönemde bir microsoft.com adresine gönderilen tüm iletileri bulur):

Get-MessageTrace -RecipientAddress *@microsoft.com -StartDate 3-June-2022 -EndDate 10-June-2022 -Status Delivered

Ayrıca gönderen adreslerine karşı joker karakter araması da yapabilirsiniz. Örneğin, geçen hafta quest.com'dan kiracıma teslim edilen tüm mesajları nasıl bulacağım. Sonuçlar, quest.com adreslerinden kiracıdaki posta özelliği etkin olan herhangi bir alıcıya gönderilen tüm iletileri kapsar:

Get-MessageTrace -SenderAddress *@quest.com -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) -Status Delivered | ft senderaddress, recipientaddress, subject, status

Konuya Göre Mesaj Takibi

Ne yazık ki Get-MessageTrace cmdlet'i, eşleşen konuya sahip belirli bir mesajın aranmasına izin verecek bir Konu parametresi içermez. Bu açık, arama sonuçlarının Nerede-Object cmdlet'ine aktarılmasıyla kolaylıkla aşılabilir. Örneğin, Quest.com'dan alınan mesajların nasıl alınacağı ve mesaj konusunda yalnızca "Sıfırıncı gün" dizesini içeren mesajların nasıl eşleştirileceği aşağıda açıklanmıştır:

Get-MessageTrace -SenderAddress *@quest.com -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date) -Status Delivered  | ? {$_.Subject -like "*Zero-day*"}

Özet

Bulutta mesaj izleme farklıdır. Şirket içi sunucular genellikle günlüklerin ne kadar süreyle kullanılabilir kalacağı konusunda daha fazla kontrole sahipken, bulut sistemleri bilgileri daha sınırlı süreler boyunca çevrimiçi tutma eğilimindedir. Get-MessageTrace cmdlet'inin kullanımı Get-MessageTrackingLog cmdlet'inden farklıdır, ancak yeteneklerini akıcı hale getirmek için fazla bir şey gerekmez.

İlgili makaleler