يمكن أن يساعد أمر Get-MessageTrace في PowerShell مسؤولي Office 365 في تتبع تسليم ومعالجة رسائل البريد الإلكتروني التي قد لا تصل إلى صناديق بريد مستخدميهم. في هذه المقالة، سأريك كيفية استخدام أمر Get-MessageTrace لإدارة وتحليل أثار رسائل البريد الإلكتروني في Office 365.
استخدام PowerShell Get-MessageTrace مع Exchange Online
يعتبر أمر Get-MessageTrace cmdlet الطريقة الافتراضية للمسؤولين لتحليل وإدارة حركة البريد الإلكتروني داخل Exchange Online. ومع ذلك، هذا الأمر PowerShell متاح فقط في بيئات Exchange Online (جزء من Office 365).
في بيئة Exchange على الأرض، الأمر البرمجي PowerShell Get-MessageTrace غير متوفر، والبديل الخاص بك هو الأمر Get-MessageTrackingLog . الأمر البرمجي PowerShell Get-MessageTrace يوفر وظائف مماثلة لنظيره على الأرض، ولكن مرة أخرى، تم تصميم هذا الأمر البرمجي خصيصًا لبيئات Office 365 القائمة على السحاب.
تتبع الرسائل في Exchange على الأرض مقابل Exchange Online: الفروق الرئيسية
- البيئة: تتعامل Exchange على الأرض مع خوادم المؤسسة، بينما Exchange Online هو خدمة قائمة على السحابة تقدمها Microsoft.
- التكامل: في Exchange Online، يتكامل الأمر Get-MessageTrace بسلاسة مع ميزات الأمان والامتثال في Office 365، بينما في بيئات الأرض، يجب استخدام الأمر Get-MessageTrackingLog .
- المصادقة: تختلف طرق المصادقة وجلسات PowerShell بسبب طبيعة Exchange Online القائمة على السحابة.
- التوسعية: تم تصميم توسعية Exchange Online للتعامل مع أعباء البريد الإلكتروني الكبيرة دون الحاجة إلى ترقيات الأجهزة على الأرض.
الاتصال بـ Exchange Online
ها هو تحديث سريع: لاستخدام أي أوامر cmdlets لـ Exchange Online ، تحتاج إلى إنشاء جلسة PowerShell عن بُعد مع بيئة Office 365 الخاصة بك. افتح نافذة PowerShell وقم بتشغيل الأمر التالي.
Connect-ExchangeOnline

هناك، أنت معتاد عليه، صحيح؟ إذا كنت بحاجة إلى المزيد من المساعدة في الشروط المسبقة المطلوبة للاتصال، يرجى قراءة مشاركتي السابقة حول كيفية الاتصال بـ Exchange Online.
استخدام Get-MessageTrace مع نطاق تاريخ محدد
تحليل حركة البريد الإلكتروني ضمن نطاق تاريخ محدد هو مهمة إدارية شائعة. يتيح لك أمر cmdlet Get-MessageTrace تصفية ومراجعة رسائل البريد الإلكتروني استنادًا إلى تاريخ إنشائها أو تسليمها. يُنصح بأن هناك حد أقصى لتاريخ يبلغ 10 أيام يمكن لهذا الأمر PowerShell الوصول إليه. إذا كنت بحاجة إلى التحقيق في تدفق البريد الإلكتروني قبل 10 أيام ، فسوف تحتاج إلى استخدام مركز مسؤولي Exchange وتشغيل تتبع رسالة لفترة زمنية أطول.
إليك دليل خطوة بخطوة حول كيفية استخدام أمر cmdlet Get-MessageTrace للبحث عن رسائل ضمن نطاق تاريخ محدد.
آخر x دقائق
يُستخدم معلمة ‘StartDate’ لتحديد الإطار الزمني الذي ترغب في البحث عنه. يمكنك إدخال التواريخ (حتى 10 أيام كحد أقصى). ومع ذلك، يمكنك أيضًا تضمين الأوقات. تأكد من تضمين نطاقات البيانات/الوقت في علامات اقتباس (“”).
لنجرب استخدام أمر Get-MessageTrace للبحث عن رسائل البريد الإلكتروني خلال الـ 90 دقيقة الماضية:
Get-MessageTrace -StartDate "08/15/2023 10:45 AM" -EndDate "08/15/2023 12:15 PM"

I’ll remind you that I am using my Microsoft 365 Developer tenant, so there’s not a lot of email activity occurring. If you get no output, it simply means that no email traffic records were returned. This can be completely normal.
يمكنك أيضًا استخدام أمر PowerShell الأكثر تطورًا للعودة إلى الوراء بـ 45 دقيقة بهذه الطريقة:
Get-MessageTrace -StartDate (Get-Date).AddMinutes(-45) -EndDate (Get-Date)
دعني أرسل بعض رسائل البريد الإلكتروني حتى تتمكن من رؤية كيف سيعمل الإخراج في بيئتك.
آخر x ساعات
الآن، هذا أمر مهم – ستسجل Exchange Online بالتأكيد أوقات تسليم البريد الإلكتروني بتوقيت عالمي منسق (UTC)! لذلك، يجب عليّ ضبط أوقات نهاية التاريخ الخاصة بي، وسأريك كيفية القيام بذلك.
لنبحث عن الوراء إلى الـ 8 أو 9 ساعات الماضية:
Get-MessageTrace -StartDate "08/15/2023 10:45 AM" -EndDate "08/15/2023 7:00 PM"

ها هي! هذا يظهر رسالة بريد إلكتروني من حساب آخر إلى حساب المسؤول العالمي الرئيسي الخاص بي. وأنا أكتب هذا، أرسلت البريد الإلكتروني حوالي الساعة 12:15 ظهرًا (CDT). ومع ذلك، يتقدم UTC بـ 5 ساعات. وهذا هو السبب في أن سطر البريد الإلكتروني يُبلغ عن تسليمه في الساعة 5:16 مساءً (UTC). يرجى الانتباه إلى هذا الفرق الزمني!
آخر x أيام
على الرغم من أن ليس لدي أي سجل تسليم بريد إلكتروني، يمكنني على الأقل أن أريك الأمر. إذا كنت ترغب في عرض جميع رسائل البريد الإلكتروني التي تم معالجتها من خلال Exchange Online، يمكنك ببساطة تضمين التواريخ.
Get-MessageTrace -StartDate 08/05/2023 -EndDate 08/15/2023

ها هي. لأن لدي Azure AD Connect Cloud Sync مكون في هذا المستأجر، أتلقى بريدًا إلكترونيًا أسبوعيًا يحتوي على تحديثات الحالة. تم إرسال البريد الإلكتروني في 8/8/2023.
مرة أخرى، تذكر، يمكنك البحث فقط للوراء بحد أقصى 10 أيام. إذا كنت بحاجة إلى استكشاف الماضي بشكل أعمق، ستحتاج إلى استخدام ميزة تتبع الرسالة على موقع مركز إدارة Exchange. هناك، يمكنك إنشاء طلب للعودة إلى 90 يومًا.
استخدام Get-MessageTrace للبحث حسب عنوان البريد الإلكتروني للمُرسل
تحديد الرسائل المُرسلة بواسطة مُرسل معين يمكن أن يكون حاسمًا لأغراض مختلفة، مثل التحقيق في أنماط الاتصال أو معالجة مخاوف الأمان. يسمح لك الأمر البرمجي Get-MessageTrace بالبحث عن تتبع الرسائل من عنوان بريد إلكتروني معين.
إليك كيفية استخدام المعلمة ‘-SenderAddress’ للبحث عن تتبع الرسائل من مُرسل محدد:
Get-MessageTrace -SenderAddress "[email protected]"

رائع، هناك واحد آخر. لطيف وبديهي. ونصيحة ممتازة – إذا قمت بتوجيه النتائج إلى cmdlet Format-List، ستحصل على ملخص ممتاز للنتائج بما في ذلك حالة التسليم، وهوية الرسالة، ومعرّف تتبع الرسالة، وعنوان المُرسِل، وعنوان المُستلم، وأكثر من ذلك بكثير.

استخدام Get-MessageTrace للبحث بواسطة عنوان البريد الإلكتروني للمستلم
تتبع الرسائل الإلكترونية المُرسَلة إلى مستلم معين مهمة أساسية أخرى للمسؤولين. سواء كنت تدير تسليم البريد الإلكتروني أو تضمن وصول المعلومات الحساسة إلى الأشخاص المناسبين، فإن القدرة على البحث بواسطة عنوان البريد الإلكتروني للمستلم لا تقدر بثمن.
لنستخدم مثالًا، هنا سنبحث عن جميع الرسائل الإلكترونية التي تم تسليمها إلى… لي:
Get-MessageTrace -RecipientAddress "[email protected]"

يُظهر هذا 3 رسائل إلكترونية تم إرسالها إلى عنوان بريدي الإلكتروني في المستأجر. وبالمناسبة، إذا لم تتضمن أي معلمات تتعلق بالوقت، فسيقوم بالإبلاغ عن آخر 48 ساعة.
هل يمكنك استخدام Get-MessageTrace للبحث بواسطة موضوع البريد الإلكتروني؟
للأسف، لا يمكنك استخدام أمر Get-MessageTrace للبحث حسب الموضوع. لهذا الغرض، سترغب في استخدام Microsoft Purview وإنشاء بحث (محتوى) eDiscovery. يمكنك العثور على مزيد من المعلومات حول ذلك في مقالنا السابق حول eDiscovery.
استخدام Get-MessageTrace للبحث حسب عنوان IP المصدر والوجهة
يمكنك أيضًا استخدام أمر Get-MessageTrace للبحث حسب عناوين IP المصدر والوجهة. يتيح لك ذلك تتبع رسائل البريد الإلكتروني استنادًا إلى عناوين IP للخوادم الإرسال والاستقبال. يمكن أن يكون ذلك مفيدًا بشكل خاص لتشخيص مشاكل التسليم، وتحديد الأنشطة المشبوهة، وفهم المسار الذي تسلكه الرسائل من خلال بنية البريد الإلكتروني الخاصة بك.
هنا، يمكننا أيضًا استخدام معلمات ‘-ToIP’ و ‘-FromIP’. على سبيل المثال، إذا أردنا البحث عن جميع رسائل البريد الإلكتروني القادمة من عنوان IP المصدر 44.42.2.55 وعنوان IP العام لجدار الحماية الخارجي لدينا لاستقبال البريد الإلكتروني، 101.3.2.88، يمكننا استخدام الأمر التالي كمثال.
Get-MessageTrace -ToIP "4.42.2.55" -FromIP "101.3.2.88"

مرة أخرى، ليس لدي محتوى رائع حقًا هنا لأعرضه لك، ولكنه يعمل. حقًا، يعمل.
كيفية استخدام الرموز المرقمة والمطابقات الجزئية
يمكنك أيضًا استخدام أحرف البدل لتضييق نطاق النتائج بكفاءة. على سبيل المثال، لأسباب الأمان أو الامتثال، دعنا نقول إن ضابط الامتثال يرغب في رؤية سجل بكل الرسائل الإلكترونية التي تم معالجتها من Gmail خلال الساعات الـ 48 الماضية. سهلة جدا!
Get-MessageTrace -SenderAddress *@gmail.com
انظر، إن هذا سهل جدا للقيام به. ويمكنك القيام بالشيء نفسه للمستلمين. إذا كنت ترغب في رؤية جميع الرسائل التي تم تسليمها لجميع الأشخاص الذين لديهم عنوان بريد إلكتروني يبدأ بحرف “m”، جرب الأمر التالي:
Get-MessageTrace -RecipientAddress m*@x3v6p.onmicrosoft.com
مرة أخرى، هذا أمر بسيط جدا.
كيفية الحصول على نتائج أكثر تفصيلاً باستخدام Get-MessageTraceDetail
إذا كنت ترغب في توسيع الناتج من أمر Get-MessageTrace، فسوف تكون سعيدًا لمعرفة أن أمر Get-MessageTraceDetail يوسع ذلك ويعرض لك الأحداث الفردية لمعالجة وتسليم البريد الإلكتروني. دعني أريك.
أولاً، سأقوم بتشغيل أمر Get-MessageTrace وتوجيهه إلى أمر ‘Format-List’ (fl) للحصول على بعض التفاصيل.
Get-MessageTrace | fl

هنا، يمكننا رؤية بعض التفاصيل الإضافية حول 4 رسائل بريد إلكتروني في الـ 48 ساعة الأخيرة. لذلك، ما يمكننا فعله هو الحصول على معرف تتبع الرسالة وعنوان المستلم من البريد الإلكتروني الثاني واستخدام الأمر التالي:
Get-MessageTraceDetail -MessageTraceID e4f33ded-b67f-49b8-9a00-08db9dbb953a -RecipientAddress [email protected]

هنا، يمكننا رؤية الأحداث الثلاثة التي تشكل استقبال وتسليم رسالة البريد الإلكتروني من الإنترنت إلى صندوق بريد Exchange الفعلي لميغان. كمية جيدة جدًا من التفاصيل هنا. يمكن أن يظهر هذا بشكل قابل للتصور إذا تم تسليم رسالة مباشرة إلى مجلد البريد العشوائي لمستخدم، أو إذا تم إعادة توجيهها تلقائيًا إلى صندوق بريد داخلي (أو خارجي) آخر. بشكل عام، هذه معلومات مفيدة لمحترفي تكنولوجيا المعلومات ومسؤولي Exchange.
كيفية تصدير النتائج إلى ملف CSV
غالبًا ما ستقوم بتشغيل عمليات بحث تقوم بالإبلاغ عن العديد من السجلات. بالتأكيد سترغب في استخدام Excel لتحليل وتصفية النتائج. للقيام بذلك، ما عليك سوى توجيه نتائجك عبر الأمر Export-CSV، مثل هذا:
Get-MessageTrace | Export-CSV AllEmailsInLast48Hours.csv

استغرق هذا بضع ثوان فقط. جيد جدًا!
كيفية إجراء عمليات بحث متقدمة باستخدام Group-Object
يمكنك استخدام أمر Group-Object للحصول على نظرة عالية المستوى حول تسليم البريد الإلكتروني الخاص بنا.
أكثر المرسلين نشاطًا للبريد الإلكتروني
يمكنك استخدام الأمر التالي للعثور على المستخدمين الذين قاموا بإرسال أكبر عدد من رسائل البريد الإلكتروني خلال الأيام السبعة الماضية. دعني أريك الأمر، ثم سأشرحه.
Get-MessageTrace -StartDate (Get-Date).AddDays(-10) -EndDate (Get-Date) | Group-Object -Property SenderAddress | Select Name,Count | Sort Count -Descending

هنا، نجمع أولاً قائمة كاملة بالرسائل الإلكترونية التي تم معالجتها خلال الأيام العشرة الماضية. ثم نأخذ هذا الإخراج ونستخدم أمر Group-Object، نستخدم خاصية ‘SenderAddress’، ونحصل على العدد (عدد الرسائل)، ونقوم بفرزه حسب الكمية الأكبر أولاً.
المستلمون الذين يتلقون أكبر عدد من رسائل البريد الإلكتروني
بشكل مماثل، يمكننا بسرعة جمع المستخدمين الذين تلقوا أكبر عدد من رسائل البريد الإلكتروني خلال الأيام العشرة الماضية عن طريق تشغيل نفس الأمر واستبدال خاصية ‘SenderAddress’ بـ ‘RecipientAddress’. دعنا نرى ما سيحدث:
Get-MessageTrace -StartDate (Get-Date).AddDays(-10) -EndDate (Get-Date) | Group-Object -Property RecipientAddress | Select Name,Count | Sort Count -Descending

I do love how powerful and simple PowerShell can be. Now, we have the information. Again, the data in this tenant is VERY low. You will undoubtedly see more robust results when you run these commands in your tenant.
أمر Get-MessageTrace يوفر المرونة والتحكم
سواء كنت بحاجة إلى البحث ضمن نطاق تاريخ معين، أو تحديد آثار الرسائل من مرسل معين، أو تتبع آثار الرسائل المرسلة إلى مستلم محدد، يوفر أمر Get-MessageTrace المرونة والتحكم اللازمين. بالإضافة إلى ذلك، تعزز القدرة على تصدير النتائج إلى ملف CSV قدرتك على تحليل ووثائق أنماط التواصل عبر البريد الإلكتروني. من خلال اتقان استخدام أمر Get-MessageTrace، يمكنك إدارة حركة البريد الإلكتروني بفعالية واكتساب رؤى قيمة حول أنشطة التواصل في منظمتك.