Dapatkan-MessageTrackingLog Exchange Log Tracking

Anda dapat menggunakan cmdlet untuk menganalisis log transport saat melacak email di Exchange. Dapatkan-MessageTrackingLog Konsol Shell Manajemen Exchange. Dalam artikel ini, saya akan mencantumkan contoh perintah PowerShell baris tunggal yang sering saya gunakan saat mencari dan melacak perutean email di Exchange Server 2016/2013/2010 dan Office 365 (Exchange Online).

Biarkan saya mengingatkan Anda bahwa Exchange transport log disimpan di direktori % ExchangeInstallPath% TransportRoles \ Logs \ MessageTracking dan cara paling efektif dan fleksibel untuk menganalisis log ini ketika melacak pesan di sistem Exchange adalah dengan menggunakan cmdlet Get-MessageTrackingLog.

Pertama-tama, pertimbangkan parameter utama cmdlet Get-MessageTrackingLog yang dapat Anda gunakan untuk memfilter peristiwa dalam log. Parameter cmdlet yang paling umum digunakan adalah:

  • Pengirim - cari berdasarkan pengirim;
  • Penerima - cari berdasarkan penerima;
  • Server - Cari di server transportasi tertentu
  • Mulai "02/30/2019 08:00:00" -Akhir “02/31/2019 21:00:00” - mencari periode waktu tertentu;
  • Subjek Message - mencari subjek pesan;
  • Eventid - mencari berdasarkan kode acara server (biasanya MENERIMA, MENGIRIM, KEGAGALAN, DSN, MEMBERIKAN, BADMAIL, MENYELESAIKAN, MENGEMBANGKAN, MENGIRIMKAN, MENGIRIM, MENGIRIMKAN, MENGAMBIL POISONMESSAGE, menggunakan kode DEFER);
  • messageID - melacak huruf dengan ID-nya.

Jika Anda menjalankan cmdlet Dapatkan-MessageTrackingLog tanpa parameter, semua peristiwa dari log Exchange selama 30 hari terakhir akan ditampilkan. Sangat bagus bahwa dengan berlari seperti itu, cmdlet hanya menampilkan 1000 peristiwa terakhir. Untuk menghapus batas jumlah acara yang ditampilkan, Anda perlu menentukan parameter -Ukuran Hasil Tidak terbatas (tidak disarankan untuk melakukan ini tanpa menentukan parameter pemfilteran tambahan karena kemungkinan beban tinggi di server).

Anda dapat menampilkan informasi tentang peristiwa Exchange dalam formulir halaman menggunakan perintah:

Dapatkan-MessageTrackingLog | Out-Host-Halaman

Untuk menyajikan data dalam bentuk tabel dan menyelaraskan lebar kolom, gunakan cmdlet Format-Tabel:

Dapatkan-MessageTrackingLog | Format-Tabel -AutoSize

Jika organisasi Exchange Anda menggunakan beberapa server Hub Transport, untuk mencari log server, tentukan nama server sebagai argumen untuk parameter -Server, atau jalankan perintah pencarian untuk setiap server Hub Transport:

Dapatkan-TransportServer | Dapatkan-MessageTrackingLog

Kami menampilkan semua surat dalam 12 jam terakhir ((Get-Date) .AddHours (-12)) di mana penerima dari sistem email @ gmail.com diindikasikan sebagai penerima:

Get-MessageTrackingLog -Mulai (Get-Date) .AddHours (-12) -ResultSize tanpa batas | di mana [string] $ _. penerima -seperti "*@gmail.com"

Untuk menampilkan semua surat yang dikirim oleh pengguna tertentu untuk jangka waktu tertentu melalui server yang ditentukan (hanya bidang tertentu yang akan ditampilkan dalam laporan):

Dapatkan-MessageTrackingLog -ResultSize tanpa batas -Mengirim "[email protected]" -server msk-hub-01 -Mulai "03/30/2019 08:00:00" -End "04/04/2019 21:00:00" | Pilih-objek Stempel Waktu, Pengirim, Penerima, Subjek Message, EventId | ft

Temukan semua surat yang dikirim oleh satu pengguna ke pengguna lain dan unggah hasilnya ke file CSV:

Dapatkan-MessageTrackingLog -Kirim "[email protected]" -Recipients "[email protected]" -ResultSize unlimited -server msk-hub-01 | Timestamp Select-Object, Pengirim, $ _. Penerima, MessageSubject | Ekspor-Csv -Path "C: \ ps \ exchange \ msg_tracking_out.csv" -Encoding Default -Delimiter ";"

Cari pada subjek surat itu. Untuk menampilkan semua huruf dengan baris subjek yang berisi frasa "tes", jalankan perintah berikut (untuk menyajikan hasil pencarian dalam jendela grafik tabular terpisah dengan opsi yang mudah untuk menyortir, memfilter, dan mencari data, Anda dapat menggunakan cmdlet out-gridview):

Dapatkan-MessageTrackingLog -MessageSubject "test" -ResultSize unlimited -server msk-hub-01 | Timestamp Select-Object, Pengirim, $ _. Penerima, MessageSubject | out-gridview

Anda dapat mencari berdasarkan pengidentifikasi pesan tertentu (misalnya, Anda menerimanya dari header layanan dari pesan di Outlook):

Dapatkan-MessageTrackingLog -messageID "[email protected]" -ResultSize unlimited -server msk-hub-01 | Timestamp Select-Object, Pengirim, $ _. Penerima, MessageSubject

Untuk menghitung jumlah pesan masuk selama 7 hari terakhir untuk kotak surat tertentu, lakukan:

(Dapatkan-MessageTrackingLog -EventID "MENERIMA" -Penerima "[email protected]" -ResultSize tanpa batas). Count

Anda dapat menampilkan statistik huruf dengan pengelompokan. Misalnya, Anda ingin melihat berapa banyak surat dari berbagai pengirim dari domain mail.ru yang diterima organisasi Anda dalam 1 hari (kami akan menampilkan jumlah total surat yang dikirim oleh setiap pengirim eksternal):

Get-MessageTrackingLog -EventId "Receive" -Start (Get-Date) .AddDays (-1) -ResultSize Unlimited | Where-Object $ _. Pengirim-like "*@mail.ru" | Pengirim Objek-Grup | Sortir-Objek Hitung-Turun | Format-Tabel *

Untuk mencari email yang tersimpan di kotak pesan pengguna Exchange, gunakan cmdlet Search-Mailbox.

Office 365 memiliki kemampuan untuk mencari log pelacakan dari antarmuka web Exchange Admin Center (EAC). Pergi ke bagian ini Alur Surat -> Jejak Pesan. Isi kolom yang diperlukan untuk pencarian. Intinya, ini adalah antarmuka web untuk cmdlet Get-MessageTrackingLog, yang memungkinkan pengguna untuk membentuk perintah PowerShell dalam bentuk sederhana untuk mencari pesan dengan log..

Metode di atas akan membantu Anda mendapatkan statistik tentang pesan yang dikirim dan diterima di sistem Exchange dan mendiagnosis masalah dengan mengirim pesan.