إزالة الرسائل من قوائم انتظار البريد. الحذف التلقائي للسجلات

عند تنفيذ Exchange، ينشأ موقف غير سار - يبدو أننا قد استوفينا جميع متطلبات المساحة لـ Exchange، ولكنها تتناقص بشكل لا محالة... نبدأ في فهم وفهم أن جميع أنواع السجلات تنمو بشكل أسرع مما توقعنا، فكيف تعامل معهم؟ فيما يلي وصف لطرق اقتطاع/نقل السجلات المختلفة، بشكل عام، كل ما سيساعدنا في حل المشكلة. بشكل منفصل، أود أن أشير إلى أن جميع المعلومات موجودة في مكتبة Technet التقنية :) وهنا تم اختيارها للتو لمهمة محددة: تذكر طرق حل المشكلات مع نقص المساحة بسبب نمو السجلات.

سجلات المعاملات

سجل المعاملات العنصر الأكثر أهميةتبادل. فيما يلي مثال: عند إرسال رسالة، تتم كتابة المعاملة أولاً في السجل. حتى يتم الالتزام بالمعاملة في قاعدة بيانات Exchange، تكون هذه البيانات موجودة فقط في ذاكرة النظاموسجلات المعاملات. في حالة حدوث عطل، ستفقد محتويات الذاكرة وكل ما تبقى لديك هو إدخالات سجل المعاملات. تعتبر هذه السجلات مهمة لاستعادة قاعدة البيانات التالفة. الأمر نفسه ينطبق على المعاملات الأخرى: الرسائل المستلمة، والعناصر المحذوفة، والرسائل المنقولة إلى مجلدات أخرى. وعليه فإن هذه السجلات تنمو بسرعة كبيرة، فكيف يمكن تقليلها؟

1. النسخ الاحتياطي

إحدى الوظائف التي يتم إجراؤها عند اكتمال النسخ الاحتياطي الكامل أو التزايدي بنجاح هي اقتطاع ملفات سجل المعاملات التي لم تعد مطلوبة لاستعادة قاعدة البيانات. يدعم Exchange 2013 فقط النسخ الاحتياطيةالتبادل استنادًا إلى خدمة النسخ الاحتياطي لوحدة التخزين (VSS).

مقالة رائعة عن الإعداد. نسخة احتياطيةمع باستخدام ويندوزالنسخ الاحتياطي للخادم

2. تمكين التسجيل الدائري

عند تشغيله تسجيل دائرييتم مسح سجل المعاملات مباشرة بعد ترحيل المعاملات إلى قاعدة البيانات.

مع مجموعة شرق أفريقيا التسجيل الدائرييتحول مثل هذا:

عند تمكين التسجيل الدائري لمحرك التخزين المحسن ملفات إضافيةلا يتم إنشاء أي سجلات، وبدلاً من ذلك يتم استبدالها إذا لزم الأمر الملف الحاليمجلة. ومع ذلك، في بيئة النسخ المتماثل المستمر (DAG)، تكون ملفات السجل مطلوبة لشحن السجل وتحويله. ونتيجة لذلك، عند تمكين التسجيل الدائري للنسخ المتماثل المستمر، لا تتم الكتابة فوق ملف السجل الحالي، ويتم إنشاء السجلات لعملية الشحن والترجمة الملفات المغلقة log، أي أنه يتم ضمان استمرارية السجل، ولا يتم حذف السجلات أثناء الحاجة إليها للنسخ المتماثل. خدمة النسخ تبادل مايكروسوفتوالخدمة البنكية بيانات مايكروسوفتيتواصل Exchange باستخدام استدعاءات الإجراءات عن بعد (RPC) فيما يتعلق بملفات السجل التي يمكن حذفها.

3. نقل سجلات المعاملات

حسنًا، في النهاية، يمكننا نقل السجلات مع قاعدة البيانات إلى موقع/قرص آخر.

هناك أمر cmdlet رائع لهذا الغرض نقل-DatabasePath. فيما يلي مثال على نقل قاعدة بيانات MDB01 وسجلات المعاملات لمحرك الأقراص M إلى الدلائل المناسبة:

مسار نقل قاعدة البيانات "MDB01" –EdbFilepath "M:\DB\MDB01\database\mdb01.edb" – مسار LogFolder "M:\DB\MDB01\logs\"

قاعدة بيانات قائمة الانتظار

هذه بالطبع ليست سجلات، ولكن إذا كنت بحاجة إلى تحرير مساحة، فإن نقل قاعدة البيانات هذه يمكن أن يساعدك. قاعدة بيانات قائمة الانتظار عبارة عن مخزن مؤقت للرسائل في انتظار المرحلة التالية من المعالجة. كل قائمة انتظار عبارة عن مجموعة منطقية من الرسائل التي تتم معالجتها بواسطة خادم النقل بترتيب معين. يتم تخزين كافة قوائم الانتظار في قاعدة بيانات ESE واحدة. توجد قوائم الانتظار فقط على الخوادم صناديق البريدأو على خوادم Edge Transport. يتم التحكم في موقع قاعدة بيانات قائمة الانتظار وسجلات المعاملات الخاصة بها عن طريق المفاتيح الموجودة في ملف تكوين XML الخاص بالتطبيق %ExchangeInstallPath%Bin\EdgeTransport.exe.config.

كل ما يمكننا فعله به هو نقله إلى مكان آخر. كافٍ معلومات شاملةحول النقل موجود في مكتبة تكنيت في المقالة تغيير موقع قاعدة بيانات قائمة الانتظار

ينقلالسجلات

توفر سجلات النقل معلومات حول ما يحدث في مسار النقل. توجد معلومات شاملة تمامًا حول تعطيل/تمكين التسجيل ونقله في مكتبة technet في مقالة سجلات النقل.

تتوفر سجلات النقل التالية في Microsoft Exchange Server 2013:

  • سجلات الوكيل
  • سجلات الاتصال
  • تتبع الرسائل وتقارير التسليم
  • تتبع خطوط الأنابيب
  • سجلات البروتوكول
  • سجلات جدول التوجيه

بروتوكولالسجلاتعبر EAC: الخوادم\الخوادم\حدد الخادم\سجلات النقل\سجل البروتوكول

على سبيل المثال، قم بتغيير مسار التخزين تتبع الرسائلعبر EAC: الخوادم\الخوادم\حدد الخادم\سجلات النقل\سجل تتبع الرسائل.

أود أن أشير بشكل منفصل إلى أنه لا يمكنك الانتقال إلا إلى مجلد محلي. مشكلة في التنسيب على مورد الشبكةيمكنك الالتفاف حوله باستخدام الأمر mklink وإنشاء رابط لمورد الشبكة. على سبيل المثال، قم بإنشاء رابط mklink /d “D:\HubReceiveSMTPLog” \\Server\HubReceiveSMTPLog، الآن يمكنك استخدام الأمر Set-TransportService cmdlet والمعلمة –ReceiveProtocolLogPath “D:\HubReceiveSMTPLog” لتخزين سجلات الاستقبال SMTP على مورد الشبكة. هذه الطريقةمناسبة للسجلات الأخرى كذلك.

IISسجلملفات

في سجل IIS، سيكون لديك معلومات، على سبيل المثال، حول توصيل جهاز iPad الخاص بك باستخدام بروتوكول activesync. يمكن أن يكون حجم سجلات IIS، إذا لم تتم مراقبته، كبيرًا جدًا. كيف يمكنني حذفها تلقائيًا أو نقلها إلى قرص آخر؟

1.الإزالة التلقائيةمخابئ

قم بتشغيل البرنامج النصي ps1 التالي يوميًا من خلال المجدول (قم بتغيير مسار تخزين السجل إذا لزم الأمر) وسيتم حذف جميع سجلات IIS الأقدم من 30 يومًا دون الحاجة إلى انتباهك.

تعيين الموقع c:\inetpub\logs\LogFiles\W3SVC1\

foreach ($ملف في get-childitem) (

إذا ($File.LastWriteTime -lt (Get-Date).AddDays(-30)) (

ديل ملف $

يمكنك تشغيل البرنامج النصي ps1 من خلال المجدول كما يلي:

  • إنشاء مهمة في جدولة
  • إنشاء إجراء: بدء تشغيل البرنامج
  • في حقل البرنامج/البرنامج النصي: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
  • في حقل إضافة الوسائط (اختياري): - الأمر "pathTOscript\name.ps1"

2. نقل السجلات إلى موقع آخر

  • افتح IIS Manager من الأدوات الإدارية وحدد موقع الويب الافتراضي.

  • افتح التسجيل (انقر نقرًا مزدوجًا على أيقونة التسجيل)
  • تغيير موقع تخزين السجل

  • احفظ تغييراتك. الملف التاليسيتم كتابة السجل إلى موقع تخزين جديد
  • يمكن فعل الشيء نفسه باستخدام قوة بوويرشيل:

إدارة الويب لوحدة الاستيراد

Set-ItemProperty 'IIS:\Sites\Default Web Site' -اسم السجل file.directory "D:\IISLogs"

مجلد التسجيل

وأخيرًا مجلد التسجيل، والذي يقع افتراضيًا في "C:\Program Files\Microsoft\Exchange Server\V15\Logging". يتم تخزين العديد من سجلات الخدمات المختلفة هنا، ويمكن أن يستغرق الأمر الكثير عدد كبير منأماكن. من الجدير بالذكر بشكل خاص من حيث الحجم ملفات سجل التشخيص والأداء، الموجودة في المجلد "C:\Program Files\Microsoft\Exchange Server\V15\Logging\Diagnostics".

تم العثور على حل بسيط لهذه المشكلة على الإنترنت؛ قم بتشغيله يوميًا عبر المجدول وستتوقف جميع السجلات من هذه المجلدات الأقدم من 14 يومًا عن إزعاجك :)

gci 'C:\Program Files\Microsoft\Exchange Server\V15\Logging','C:\inetpub\logs' -الدليل | gci -تضمين '*.log','*.blg' -Recurse | ؟ LastWriteTime -lt (Get-Date).AddDays(-14) | إزالة بند

ملاحظة. أنا شخصياً أفضل قطع التشخيص فقط:

gci 'C:\Program Files\Microsoft\Exchange Server\V15\Logging\Diagnostics' - الدليل | gci -تضمين '*.log','*.blg' -Recurse | ؟ LastWriteTime -lt (Get-Date).AddDays(-2) | إزالة بند

قد يلزم إجراء حذف الرسائل في Exchange 2013 فقط من صندوق بريد واحد، إذا تم إرسالها إلى مستلم واحد، ولكن هناك أيضًا حالات أكثر تعقيدًا، على سبيل المثال، عندما المدير التنفيذيإرسال بيانات حساسة إلى مجموعة بريدية، أو ما هو أسوأ من ذلك، إلى شركة بأكملها. في الحالة الأخيرة، من غير المرغوب فيه للغاية لأي شخص أن يقرأ الرسالة على الإطلاق، وبالتالي الوقت يمضيولا حتى لدقائق، بل لثواني - تحتاج إلى حذف الرسالة من جميع الموظفين في أسرع وقت ممكن. هذا هو السيناريو الذي تم تصميم هذه المقالة له - بحيث تكون دائمًا في متناول اليد تعليمات مفصلة، حيث كل ما عليك فعله هو استبدال بياناتك في الأمر، وتنفيذها على الخادم الخاص بك وسيكون كل شيء جاهزًا وكل ما عليك فعله هو الانتظار حتى تتم معالجة الطلب. لذلك، دعونا نبدأ.

يجد معلومات اكثريمكنك التعرف على كيفية تكوين Exchange 2013 وإدارته على مدونتي في مقالة الموضوع الرئيسي -.

لا فائدة من اختراع أي شيء، مجرد اقتباس من مقال "البحث عن الرسائل وحذفها":

البحث في صناديق البريد.يتيح لك هذا الدور البحث في الرسائل عبر صناديق بريد متعددة داخل مؤسستك. ليس لدى المسؤولين هذا الدور بشكل افتراضي. لتعيين نفسك لدور اكتشاف صندوق البريد هذا، قم بإضافة نفسك إلى مجموعة أدوار "إدارة الاكتشاف". راجع تعيين أذونات eDiscovery في Exchange.

استيراد وتصدير صناديق البريد.يتيح لك هذا الدور حذف الرسائل من صندوق بريد المستخدم. بشكل افتراضي، لا يتم تعيين هذا الدور لمجموعة دور. لإزالة الرسائل من صناديق بريد المستخدم، يجب عليك إضافة دور استيراد وتصدير صندوق البريد إلى مجموعة دور "إدارة المؤسسة". لمزيد من المعلومات، راجع إضافة دور إلى مجموعة دور.

حذف رسالة من صندوق بريد واحد

يمكنك استدعاء رسالة بينما لم تتم قراءتها مباشرة من Outlook. يمكن قراءة كيفية القيام بذلك لإصدارات Outlook 2010، 2007، 2003 في المقالة "استدعاء رسائل البريد الإلكتروني المرسلة في Outlook 2010، 2007، 2003"، أو على موقع MS Office الرسمي في الدورات التدريبية "الدورات التدريبية لبرنامج Outlook 2013" ، درس "الاستدعاء والاستبدال" الرسائل المرسلة ". سنكون أكثر اهتماما حالة صعبة، عندما يتم بالفعل وضع علامة "مقروءة" على الرسالة.

للقيام بذلك، قم بتشغيل أمر بوويرشيل، نحتاج إلى اسم صندوق البريد، وكذلك موضوع الرسالة:

جيم:\ويندوز\system32> البحث-صندوق البريد -الهوية "egor01" -SearchQuery "الموضوع:"رسالة اختبار"" -حذف المحتوى

قبل وبعد الإزالة:

حذف رسائل البريد الإلكتروني في Exchange 2013 من مجموعة من المستلمين

المنطق بسيط - cmdlet " الحصول على صندوق البريد"إرجاع قائمة بجميع صناديق البريد، والتي يتم تغذيتها بعد ذلك إلى أمر cmdlet" بحث-صندوق البريد". إذا كنت تريد حذف رسائل البريد الإلكتروني من مجموعة معينةالمستلمين، فمن المنطقي استخدام الأمر cmdlet " الحصول على DistributionGroupMember". لزيادة سرعة معالجة الأوامر، يمكنك تعطيل طلب الحذف عند ظهوره لأول مرة عن طريق تحديد "نعم للجميع". الأمر بسيط، فلندخل مباشرة في صلب الموضوع:

جيم:\ويندوز\system32> الحصول على صندوق البريد -ResultSize غير محدود | بحث-صندوق البريد -SearchQuery "الموضوع:"رسالة اختبار"" -حذف المحتوى

مساء الخير!. في المقالة السابقة، حول توصيل صندوق البريد تلقائيًا في Outlook، قلت إنني سأتحدث كثيرًا عن Microsoft Exchange Server، والذي كنت أتجنبه لفترة طويلة. سأستمر في الالتزام بوعدي، واليوم أريد أن أخبرك كيف يمكنك تفريغ الحمولة قائمة صناديق البريد في Exchange Server، هذه حاجة شائعة جدًا يتم تلبيتها مسؤولي النظامخلال أيام عملك. سأخبرك بكيفية تصفية هذا الأمر برمته، وإحصاء العدد الإجمالي لصناديق البريد، وأعلمك كيفية تحميله كله إلى ملف نصي، للتحليل اللاحق. أنا متأكد من أن هذه الملاحظة ستكون مفيدة جدًا لأولئك الأشخاص الذين بدأوا للتو العمل مع هذا الوحش من Microsoft.

كيفية تحميل قائمة صناديق البريد إلى Exchange Server

أود أن أشير إلى أن هذه الأوامر ستعمل على Microsoft Exchange Server 2010 و2013-16. وهكذا، فإن المهمة الأولى هي معرفة صناديق البريد النشطة الموجودة على خادم Exchange الخاص بنا. ولتنفيذ مهمتنا، سنستخدم Powershell cmdlet Get-Mailbox. افتح Exchange Management Shell (EMS)، وهو موجود في قائمة ابدأ

بالمناسبة، يحتوي Exchange Management Shell (EMS) في خادم البريد 2010 SP1 وحده على أكثر من 500 أمر cmdlets، لذا يمكنك العمل فيه بجدية شديدة.

نكتب الأمر التالي:

احصل على صندوق البريد | حدد -توسيع عناوين البريد الإلكتروني | %($_.SmtpAddress)

عند الإخراج تحصل على قائمة بصناديق البريد، ضع في اعتبارك أن وقت استلام النتيجة يعتمد بشكل مباشر على عدد رسائل البريد على خادم Exchange، لذلك وحدة بوويرشيلقد يتجمد. لقد حصلت على هذا الإخراج الذي يحتوي على عناوين صناديق بريد البريد الإلكتروني الخاصة بـ Exchange. ستلاحظ على الفور أن إخراج الأمر لا يتم ترتيبه أبجديًا، وهو أمر ليس مناسبًا دائمًا للتحليل.

لتفريغ القائمة العناوين البريديةكان بالترتيب الأبجدي، فأنت بحاجة إلى تعديل الأمر قليلاً:

احصل على صندوق البريد | حدد -توسيع عناوين البريد الإلكتروني | %($_.SmtpAddress) | نوع

ونتيجة لذلك، تلقيت بالفعل قائمة بصناديق البريد في قاعدة بيانات Exchange، منسقة أبجديًا، مما يسهل البحث عن صناديق البريد.

لكن نتائج تحميل قائمة صناديق البريد يمكن أن تكون طويلة ولا تتناسب مع شاشة إخراج بوويرشيل، لذلك من الملائم تحميل كل شيء في ملف نصي، والذي سيكون من السهل البحث عنه وتصفيته. يوجد أمر cmdlet لهذا يسمى Out-File.

احصل على صندوق البريد | حدد -توسيع عناوين البريد الإلكتروني | %($_.SmtpAddress) | فرز | الملف الخارجي C:\scripts\all_mailbox.txt

  • حيث أن Out-File C:\scripts\all_mailbox.txt هو المسار إلى ملف all_mailbox.txt في المجلد C:\scripts\، يمكنك تغييره إلى القيمة الخاصة بك

تحذير: بشكل افتراضي، يتم إرجاع أول 1000 عنصر فقط. استخدم المعلمة ResultSize لتحديد عدد العناصر التي تم إرجاعها. لإرجاع كافة العناصر، حدد "-ResultSize Unlimited". انتبه إلى أنه، اعتمادًا على العدد الفعلي للعناصر، قد يستغرق إرجاع جميع العناصر وقتًا طويلاً وقت وتستهلك كمية كبيرة من الذاكرة. كما أننا لا نوصي بتخزين النتائج في متغير. وبدلاً من ذلك، قم بتوجيه النتائج إلى مهمة أو برنامج نصي آخر لإجراء تغييرات مجمعة.

يرجى ملاحظة أنه يتم عرض 1000 صندوق فقط بشكل افتراضي، وإذا كنت بحاجة إلى المزيد، فسيتعين عليك إدخال المعلمة - حجم النتيجة غير محدود.

الآن دعونا نكتشف عدد عناوين صناديق البريد الموجودة في قاعدة البيانات خادم البريد، للقيام بهذا التشغيل:

احصل على صندوق البريد | حدد -توسيع عناوين البريد الإلكتروني | %($_.SmtpAddress) | يقيس

كان لدي 2159 منهم على أحد خوادمي.

هناك أيضًا مهام من الإدارة أو الموظفين، وهي إحصاء والحصول على قائمة بصناديق البريد في مجال معين، إذا لم يكن شخص ما على علم، فسيسمح لك Microsoft Exchange Server بالخدمة كمية كبيرةالمجالات، وهذا هو الممارسة العادية. ونتيجة لذلك، سوف نستخدم هذا التصميم.

إذا كنت ترغب في الحصول على أسماء العناوين البريدية في مؤسسة ما، فغالبًا ما يكون هذا هو الاسم الكامل وتاريخ إنشائها، ثم قم بتشغيل الأمر التالي:

احصل على صندوق البريد | حدد اسم الكائن، عند الإنشاء | الملف الخارجي C:\scripts\all_name.txt

كما ترون تلقيت التاريخ المحدد، عندما تم إنشاء البريد في المؤسسة ومن ينتمي إليه من حيث الاسم الكامل.

لتحميل قائمة بالمستخدمين الذين لم يقوموا بتسجيل الدخول إلى صندوق البريد الخاص بهم لأكثر من 30 يومًا وتحميلهم إلى ملف، قم بتشغيل

احصل على صندوق البريد - حجم النتائج غير محدود | Get-MailboxStatistics |?($_.LastLogonTime -lt (date).adddays(-30)) | قدم DisplayName،ItemCount،LastLogonTimeLast،LogoffTime،LastLoggedOnUserAccount -auto | الملف الخارجي C:\scripts\OLD_mailbox.txt

سيسمح لك هذا بتحديد المستخدمين الذين يهدرون المساحة في قاعدة بيانات خادم Exchange. قد تكون هناك أيضًا مواقف تحتاج فيها إلى معرفة عناوين البريد الإلكتروني التي أنشأها حسابك النظام البريدي، على سبيل المثال، لآخر 20 يومًا، للقيام بهذا التشغيل:

يرجى ملاحظة أنه في إخراج ft، يمكنك تحديد العديد من المعلمات، على سبيل المثال، base بيانات قاعدة البيانات. يمكنك حتى معرفة ذلك شهر محدد، على سبيل المثال، احصل على قائمة بصناديق البريد لشهر سبتمبر

حسنًا، للعام بأكمله، في وقت كتابة هذا التقرير، هذا هو عام 2018.

نص مكافأة للحصول على قائمة العناوين ذات الأبعاد

احصل على صندوق البريد -الوحدة التنظيمية "holding.com/Users/" -حجم النتائج غير محدود | اسم الفرز | %(
$Size=Get-MailboxStatistics$_.SamAccountName
$_ | اسم الكائن المحدد، SamAccountName، @(Name="Size";Expression=((($Size).TotalItemSize).value).toMB()+((($Size).TotalDeletedItemSize).value).toMB( )))) | تصدير-csv -ترميز يونيكود -NoTypeInformation C:\scripts\mailbox..csv

سيكون الناتج الحجم الأصليصناديق البريد في قاعدة بيانات خادم Exchange، مع مراعاة الرسائل المحذوفة من كتالوج العناصر القابلة للاسترداد. يمكنك تنزيل البرنامج النصي النهائي من الرابط الموجود على اليسار.

كما ترون، يعد الحصول على قائمة بجميع عناوين البريد الإلكتروني في مؤسسة Exchange أمرًا بسيطًا للغاية، ولا تحتاج إلى أن تكون خبيرًا في Powershell أو خبيرًا كبيرًا مبرمج رائعيكفي أن تتعلم بعض الهياكل والمفاتيح.