Bu yazımda Exchange 2013 Mail Server üzerinde Message Tracking (Mail Takibi) ile ilgili Exchange PowerShell’ i kullanarak yapılabilecek bazı raporlama işlemlerinin Shell kodlarının kullanımını sizler ile paylaşacağım. Çalıştığınız kurumlarda yöneticileriniz veya sizler E-Mailler hakkında biraz daha detaya inmek, kim, kime, ne zaman vs. gibi mail içeriklerini raporlamak veya görmek isteyebilirsiniz. Ben size birkaç basic PowerShell kodu ile bu işlemlerin nasıl yapılacağını anlatmaya çalışacağım.
İşlemlerimize başlamadan önce Filtering Message Tracking Logs ve Message tracking events’ ların tablolarını incelemenizi öneririm.
Description of Message Tracking Log Fields
http://technet.microsoft.com/en-us/library/cc539064.aspx
Field name |
Description |
date-time* |
The date and time of the message tracking event. The value is formatted asyyyy-mm-ddhh:mm:ss.fffZ, where yyyy = year, mm = month, dd = day, hh = hour, mm = minute, ss = second, fff = fractions of a second, and Z signifies Zulu, which is another way to denote UTC. |
client-ip |
The TCP/IP address of the messaging server or messaging client that submitted the message. |
client-hostname |
The name of the messaging server or messaging client that submitted the message. |
server-ip |
The TCP/IP address of the source or destination server running Microsoft Exchange Server. |
server-hostname |
The name of the destination server. |
source-context |
Extra information associated with the source field. |
connector-id |
The name of source or destination Send connector or Receive connector. |
Message tracking events
http://technet.microsoft.com/en-us/library/bb124375%28v=exchg.150%29.aspx
By default, the message tracking log files exist in %ExchangeInstallPath%TransportRoles\Logs\MessageTracking.
The naming convention for log files in the message tracking log directory is MSGTRKyyyymmdd-nnnn.log, MSGTRKMAyyyymmdd-nnnn.log, MSGTRKMDyyyymmdd-nnnn.log, and MSGTRKMSyyyymmdd-nnnn.log . The different logs are used by the following services:
- MSGTRK These logs are associated with the Transport service.
- MSGTRKMA These logs are associated with the approvals and rejections used by moderated transport. For more information, see Moderated Transport.
- MSGTRKMD These logs are associated with messages delivered to mailboxes by the Mailbox Transport Delivery service.
- MSGTRKMS These logs are associated with messages sent from mailboxes by the Mailbox Transport Submission service.
Aşağıda ki komut sayesinde belirli tarih aralıklarında ki bütün mail mail işlemlerini .html olarak raporlayabiliriz.
Get-MessageTrackingLog -Start “08/11/2014 09:00:00” -End “08/12/2014 18:10:00” | ConvertTo-Html > “C:\message.html”
Veya Get-MessageTrackingLog -Start 8/11/2014 -End 8/14/2014 -ResultSize unlimited | ConvertTo-Html > “C:\rapor.html”
Tablonun devamında daha çok içeriğe ulaşabilirisiniz.
“Get-MessageTrackingLog -Start 8/13/2014 > c:\report.csv” komutu ile belirtilmiş tarih arasında ki mailleşmeleri .csv formatında raporlayabiliriz.
Bu komut ile Ufuk.Tatlidil@msexchangetr.org mail adresinin kimlere mail attığını .csv olarak raporlayabilirsiniz.
Get-TransportServer | Get-MessageTrackingLog -resultsize unlimited -eventid receive | ? {$_.sender -like “ufuk.tatlidil@msexchangetr.org” -and $_.source -eq “STOREDRIVER”} | Select-Object timestamp, sender, messagesubject, @{label=”recipients”;expression={[string]::join(“,”,$_.recipients)}} | sort timestamp | ft -auto | Out-String -Width 4096 > c:\ufuk.tatlidil.csv
“Get-MessageTrackingLog -sender “ufuk.tatlidil@msexchangetr.org” -eventID RECEIVE” komutu ile Ufuk.Tatlidil’ in kimlere ve hangi Subject ile mail attığını görebiliriz.
“Get-MessageTrackingLog -sender “ilkim.ada@msexchangetr.org” -eventID RECEIVE -Start “08/11/2014 01:00PM” -End “08/14/2014 6:00PM” -ResultSize 25” komutu ile ilkim.ada kullanıcısının belirli tarihler arasında kimlere mail attığını görebiliriz.
CAS&MBX Serverlarımız üzerinde SUBJECT bazında aşağıda ki komut ile kimlerin, kimlere mail attığını görebiliriz.
“Get-MessageTrackingLog -MessageSubject “MsExchangeTR” -Start “08/11/2014 00:00:00” -End “08/14/2014 00:00:00” -server EX13DAG1”
Bütün CAS&MBX Serverlarımız üzerinde SUBJECT bazında aşağıda ki komut ile kimlerin, kimlere mail attığını görebiliriz.
Belirli Sender mail adreslerine göre arama yapabiriz. ilkim.ada@msexchangetr.org
“Get-MessageTrackingLog -Sender “ilkim.ada@msexchangetr.org” -Start “08/14/2014 00:00:00” -server EX13DAG2 | ft Timestamp,Recipients, RecipientStatus, Sender -wrap –autosize”
Belirli Recipient mail adreslerine göre arama yapabiriz. ufuk.tatlidil@msexchangetr.org
“Get-MessageTrackingLog -Recipient “ufuk.tatlidil@msexchangetr.org” -Start “08/14/2014 00:00:00” -server EX13DAG1 | ft Timestamp, Recipients, RecipientStatus, Sender -wrap –autosize”
Eğer FAIL olarak ulaşmadığını düşündüğünüz mailler var ise aşağıda ki komut ile kontrol sağlayabilirsiniz.
“Get-MessageTrackingLog -EventId FAIL -Start “08/14/2014 00:00:00” -server EX13DAG1 | ft TimeStamp,Source,EventID,Recipients,Sender,RecipientStatus -wrap –autosize”
Kullanıcı bazlı daha basic bir rapor isterseniz:
Get-MessageTrackingLog -sender ufuk.tatlidil@msexchangetr.org
Get-MessageTrackingLog -sender ilkim.ada@msexchangetr.org
Faydalı olması dileğiyle.