PowerShell

Перевірка стану повідомлень (читання \ не читається) в обміні

Перевірка стану повідомлень (читання \ не читається) в обміні

Справа нещодавно надійшла: ""Чи можемо ми отримати статус листа (читання / не читання) незалежно від того, чи було "повідомлення про читання" під час речення, і чи користувався користувачем повідомлення про читання чи ні?Що. У цій статті ми поговоримо про відстеження статусу читання листів на сервері Exchange On-Prem та декількох слів про цю функцію в Exchange Online (Microsoft 365).

Чому може знадобитися отримати статус читання повідомлення?

  1. Якщо лист дуже важливий, і необхідно, щоб кожен працівник ознайомився з ним;
  2. Багато компаній мають новини / дні народження \ документи, і необхідно збирати статистику, наскільки ефективні такі розсилки.

Чи можна отримати статус листа в біржовій коробці, незалежно від того, чи відправник вимагав повідомлення про читання?

Зміст:

Ми отримуємо статус читання листа в сервері обміну

Поміркуйте, як отримати статус читання листа користувача у вікні сервера Exchange On-Prem. Для початку перевірте, чи включена ваша біржа Exchange Exchange Exchange Exchange Exchange

Get-ArganizationConfig | Виберіть ReadTrackingEnabled

Правдивий - Включений, помилковий - Інвалід.

Включіть повідомлення звітування за командою:

Set -organizationconfig -readtrackingenabled $ true

Лише після цієї команди інформація про читання листа буде введена в журналах Server Server.

Ви можете вимкнути технічне обслуговування журналу "Читання" на певні (наприклад, послуги або загальні) поля з командою:

Set -mailbox email_name@companyname -messagetraackingreadsenable $ fals

Наступний крок нам потрібно отримати посвідчення особи, t.до. Кожне повідомлення має унікальний ідентифікатор, і з електронною адресою та темою ми можемо заплутатися.

Ми отримуємо літери ідентифікатора за допомогою командира get-messagetrackinglog:

Get -messagetrackinglog -sender email_name@companyname -messageubject "тема листа" -start (Get -Date).Addhours (-48) -eventid приймати | Виберіть MessageId

У нашому прикладі лист від цього відправника з цією темою був надісланий кілька разів за останні 48 годин. Ви можете застосувати інші фільтри для отримання точного MessageId.
І ви можете зробити це простіше - відкрийте потрібну букву в Outlook, натисніть на файл - властивості та знайдіть листи в "заголовках Інтернету" Інтернету.

Далі, Shell Open Exchange Management та запустіть сценарій Get-MessageAdsSreport.PS1 (викладено нижче). Вам потрібно вказати назву поля та літери повідомлень-ine.

Як результат, ви отримаєте файл CSV зі статусом читання цього листа у всіх полях користувачів. Два статус можливі після того, як літери доставляються до коробки:

Сам сценарій Get-MessageAdsSreport.PS1:
[Cmdletbinding ()]
Парам (
[Параметр (обов'язковий = $ true)]
[Рядок] $ поштова скринька,
[Параметр (обов'язковий = $ true)]
[Рядок] $ messageId
)
$ output = @()
#Ми перевіряємо журнал
якщо (!(Get-ArganizationConfig).Readtrackingenabled)
Кинути "Відстеження статусу листа вимкнено"

#Витрата ідентифікаційних листів
$ Msg = пошук -messagetrackingreport $ mailbox -bypassdelegatechecking $ messageId
#Має бути один лист
якщо ($ msg.Count -ne 1)
Кинути "$ ($ msg).Кількість листів, знайдених на цьому ідентифікаторі "

#Ми отримуємо звіт
$ Report = get -MessagetRackingReport -Identity $ msg.Messagetrackingreportid -bypassdelegatechecking
#Ми отримуємо події
$ RepientTrackingEvents = @($ Report | Виберіть -SexPandPopety RecitientTrackingEvents)
#Генерування списку одержувачів
$ одержувачі = $ RecitientTrackingEvents | Виберіть RecitientAddress
#Ми отримуємо статус листа для кожного одержувача
Foreach ($ одержувач у $ одержувачів)
$ Події = get -messagetrackingreport -identity $ msg.Messagetrackingreportid -bypassdelegateckeing '
-Одержувач реципієнта $ одержувач.Реципієнтдрес -репорт Template
$ outputline = $ події.RecitientTrackingEvents [-1] | Виберіть одержувача, статусу, подій
$ output += $ outputLine

$ Випуск
$ Directory = "C: \ log \ rsr"
$ Filename = 'readstatusreport'
$ file = "$ ім'я файлу.CSV "
#Ми відображаємо звіт до CSV
$ output | Експорт -csv -notypeInformation -append -path "$ directory \ $ file"

Відстеження статусу читання листа в обмін в Інтернеті (Microsoft 365)

Я намагався трохи змінити цей сценарій, щоб отримати статус листів у ящиках користувачів хмарного обміну в Інтернеті.

Після підключення до свого орендаря Microsoft 365 за допомогою онлайн -модуля PowerShell Exchange я перевірив, чи є обмін в Інтернеті на статус читання листа. Варіант можливий MessagetrackingReadSenabled Увімкнено для всіх поля орендаря.

Get -Exomailbox -properties messagetraackingreadusenabled | Виберіть userprincipalname, messagetraackingreadsenabledable

Вам потрібно внести зміни до сценарію, t.до. Для відстеження листів в обмін в Інтернеті замість get-messagetrackinglog та пошуку-messagetrackingreport використовуються для командування Get-messagetrace і Get-messagetcadeTail . Але, на жаль, кластер get-messagetradedetail Cloud Exchange в Інтернеті не дозволяє отримувати статус листа. Можливо, в майбутньому Microsoft приведе функціональність командира Get-MessagetRadeTail на рівень земляного пошуку-messagetrackingReport, але він ще не працює.

Виявляється, єдиний доступний спосіб перевірити читати статус листа в Exchange Online - API Microsoft Graph. Вам потрібно перевірити майно ISREAD Букви. (https: // docs.Microsoft.Com/en-sus/graph/api/message-get?Перегляд = графік-Rest-1.0 & tabs = http).

Як дивитися FPS в іграх
Майже кожен геймер, навіть початківець, знає, що "FPS" в іграх, оскільки цей показник дає уявлення про продуктивність комп'ютера та стабільність гри. ...
Форматуйте жорсткий диск через командний рядок
Форматування через командний рядок може бути корисним, якщо стандартні системи системи не можуть виконувати цю процедуру. Існує кілька способів формат...
Подарунок від Nirsoft - сім нових комунальних послуг для адміністрації Windows
З моменту створення ресурсу Nirsoft Минуло рівно п’ятнадцять років, і весь цей час його розробники не перестали працювати над створенням корисних інст...