Можете да използвате командлета за анализ на транспортни регистрационни файлове при проследяване на имейли в Exchange. Get-MessageTrackingLog Конзола за управление на обмена. В тази статия ще изброя примери за едноредови команди PowerShell, които често използвам при търсене и проследяване на маршрутизиране на поща в Exchange Server 2016/2013/2010 и Office 365 (Exchange Online).
Нека ви напомня, че транспортните дневници на Exchange се съхраняват в директория % ExchangeInstallPath% TransportRoles \ Logs \ MessageTracking
и най-ефективният и гъвкав начин за анализ на тези регистрационни файлове при проследяване на съобщения в системата на Exchange е използването на командлета Get-MessageTrackingLog.
На първо място, помислете за основните параметри на командлета Get-MessageTrackingLog, който можете да използвате за филтриране на събития в регистрационни файлове. Най-често използваните параметри на командлета са:
- подател - търсене от подател;
- Получатели - търсене по получател;
- Сървър - Търсене на конкретен транспортен сървър
- начало "30.02.2019 08:00:00" -край „31.02.2019 21:00:00“ - търсене за определен период от време;
- MessageSubject - търсене по темата на съобщението;
- EventID - търсене по код на събитието на сървъра (обикновено се използват кодове RECEIVE, SEND, FAIL, DSN, DELIVER, BADMAIL, RESOLVE, EXPAND, REDIRECT, TRANSFER, SUBMIT, POISONMESSAGE, DEFER);
- messageID - проследяване на буквите по неговия идентификационен номер.
Ако стартирате командлета Get-MessageTrackingLog
без параметри, всички събития от борсовите дневници за последните 30 дни ще бъдат показани. Добре е, че при такъв цикъл командлетът показва само последните 1000 събития. За да премахнете ограничението за броя на показваните събития, трябва да посочите параметъра -ResultSize Неограничен (не се препоръчва да правите това без да посочвате допълнителни параметри на филтриране поради възможното високо натоварване на сървъра).
Можете да покажете информация за Exchange събития във формуляр на страница, използвайки командата:
Get-MessageTrackingLog | Извън хост -страниране
За да представите данните в табличен вид и да подравните ширината на колоните, използвайте командлета Format-Table:
Get-MessageTrackingLog | Format-Table -AutoSize
Ако вашата организация Exchange използва няколко Hub Transport сървъри, за да търсите в регистрационните файлове на сървъра, посочете името на сървъра като аргумент на параметъра -Server или изпълнете командата за търсене за всеки транспортен сървър на Hub:
Get-TransportServer | Get-MessageTrackingLog
Показваме всички букви през последните 12 часа ((Дата-дата) .AddHours (-12)
), в който адресатът от пощенската система @ gmail.com е посочен като получател:
Get-MessageTrackingLog -Start (Get-Date) .AddHours (-12) -ResultSize неограничен | където [string] $ _. получатели -подобни "*@gmail.com"
За да се покажат всички писма, изпратени от конкретен потребител за определен период през определен сървър (в отчета ще се показват само определени полета):
Get-MessageTrackingLog -ResultSize неограничен -Изпращане "[email protected]" -server msk-hub-01 -Start "30.03.2018 08:00:00" -Завърши "04.04.2019 21:00:00" | select-object Timestamp, Sender, Recipients, MessageSubject, EventId | ft
Намерете всички писма, изпратени от един потребител до друг и качете резултата във CSV файл:
Get-MessageTrackingLog -Sender "[email protected]" -Получатели "[email protected]" -ResultSize неограничен -server msk-hub-01 | Времева марка Select-Object, Sender, $ _. Получатели, MessageSubject | Export-Csv -Path "C: \ ps \ exchange \ msg_tracking_out.csv" -Encoding Default -Delimiter ";"
Търсене по темата на писмото. За да покажете всички букви с темата, съдържаща фразата "тест", изпълнете следната команда (за да представите резултатите от търсенето в отделен табличен графичен прозорец с удобни опции за сортиране, филтриране и търсене на данни, можете да използвате командлета out-gridview):
Get-MessageTrackingLog -MessageSubject "тест" -ResultSize неограничен -server msk-hub-01 | Времева марка Select-Object, Sender, $ _. Получатели, MessageSubject | извън гледания
Можете да търсите по конкретен идентификатор на съобщение (например, получихте го от заглавните услуги на съобщението в Outlook):
Get-MessageTrackingLog -messageID "[email protected]" -ResultSize неограничен -server msk-hub-01 | Времева марка Select-Object, Sender, $ _. Recipients, MessageSubject
За да изчислите броя на входящите съобщения за последните 7 дни за конкретна пощенска кутия, направете:
(Get-MessageTrackingLog -EventID "RECEIVE" -Получатели "[email protected]" -ResultSize неограничен) .Count
Можете да показвате статистически данни за букви с групиране. Например, искате да видите колко писма от различни податели от домейна mail.ru, получена от вашата организация за 1 ден (ще покажем общия брой писма, изпратени от всеки външен подател):
Get-MessageTrackingLog -EventId "Получаване" -Start (Get-Date) .AddDays (-1) -ResultSize Unlimited | Where-Object $ _. Подател -подобен "*@mail.ru" | Подател на групов обект | Sort-Object Count -Descending | Формат-таблица *
Office 365 има възможност за търсене на проследяващи дневници от уеб интерфейса на Exchange Admin Center (EAC). Отидете в секцията Поток на поща -> Проследяване на съобщенията. Попълнете необходимите полета за търсене. По същество това е уеб интерфейсът за командлета Get-MessageTrackingLog, който позволява на потребителя да формира команда PowerShell в проста форма за търсене на съобщения чрез регистрационни файлове.
Горните методи ще ви помогнат да получите статистически данни за изпратени и получени съобщения в системата на Exchange и да диагностицирате проблеми с изпращането на съобщения.