M365Con 2027 – مؤتمر مجاني عبر الإنترنت · 11–22 Jan 2027 · 120 sessions→ m365con.net

المدونة · Mirko Peters

توقفوا عن هدر الأموال: كيفية أتمتة تحسين تراخيص Microsoft 365 باستخدام PowerShell

By · · Updated

مرحبًا بعودتكم إلى المدونة! إذا كنتم تديرون مستأجر Microsoft 365، فمن المرجح أنكم تعرفون ذلك الشعور المقلق عند فتح فاتورة الخدمة في نهاية الشهر. تجدون عشرات، وربما مئات، من التراخيص النشطة مسندةً إلى مستخدمين لم يسجّلوا الدخول منذ السنة المالية السابقة. …

Automatically translated with AI from the original post. Read the English original

▶ BLOGStop Wasting Money: Howto Automate Microsoft…M365.FM
Titelbild: Stop Wasting Money: How to Automate Microsoft 365 License Optimization with PowerShell

مرحبًا بعودتكم إلى المدونة! إذا كنتم تديرون مستأجر Microsoft 365، فمن المرجح أنكم تعرفون ذلك الشعور المقلق عند فتح فاتورة الخدمة في نهاية الشهر. تجدون عشرات، وربما مئات، من التراخيص النشطة مسندةً إلى مستخدمين لم يسجّلوا الدخول منذ السنة المالية السابقة. تبدو عمليات التحقق اليدوي من البوابة مثمرة، لكنها غالبًا ما تُغفل الحسابات القديمة، والمشاركة عالية الخطورة، والهدر الكبير في التراخيص. إذا سئمتم من الفحوصات العشوائية لمركز الإدارة، ومن المفاجآت غير السارة خلال عمليات التدقيق الفصلية، فقد حان الوقت لإدخال الأتمتة في سير عملكم.

في هذه المقالة، سنتعمق في كيفية كتابة نص PowerShell مجدول يقارن سجلات تسجيل الدخول بالتراخيص النشطة. بنهاية هذا الدليل، ستفهمون كيفية تحديد SKUs غير المستخدمة، واسترداد التكاليف غير الضرورية كل شهر، وحماية المستأجر من تضخم الأعباء الإدارية.

مقدمة في تحسين تراخيص Microsoft 365

غالبًا ما يُنظر إلى تحسين التراخيص على أنه صداع يحدث مرة في السنة. يسارع مديرو تقنية المعلومات إلى سحب تصديرات يدوية، ويراسلون رؤساء الأقسام للسؤال عما إذا كان المتعاقدون ما زالوا موجودين، ويخمّنون ما إذا كان الحساب مهجورًا فعلًا. هذا النهج التفاعلي يضمن هدر الميزانية. كل يوم يحتفظ فيه متعاقد غادر أو موظف ترك الشركة بترخيص E5 أو Business Premium، تنزف مؤسستكم أموالها.

لإصلاح ذلك، يجب أن نتعامل مع تحسين التراخيص كعملية مستمرة وآلية. وباستخدام قدرات PowerShell وMicrosoft Graph، يمكننا بناء نصوص تتولى العمل الشاق عنا، وتمنحنا بيانات قابلة للتنفيذ قبل أن ينتهي إعداد قهوة الصباح.

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

لماذا لا تعتمدون ببساطة على مركز إدارة Microsoft 365 الأصلي؟ صُممت البوابة للراحة لا للحوكمة المعمّقة. عندما تسجّلون الدخول إلى الواجهة الويب، فأنتم تنظرون إلى لقطات آنية دون سياق تاريخي. لا تتيح البوابة بسهولة مقارنة تواريخ آخر تسجيل دخول مع SKUs ترخيص محددة عبر آلاف المستخدمين في عرض واحد واضح ومفهوم.

علاوة على ذلك، تعتمد عمليات التحقق اليدوي كليًا على الذاكرة البشرية. هل تذكرتم فحص حسابات الخدمة؟ وهل تحققتم مما إذا كان صندوق البريد المشترك يحتاج فعلًا إلى ترخيص Exchange Online Plan 2؟ الخطأ البشري يؤدي إلى نقاط عمياء، وهذه النقاط تكلّف المال وتُدخل مخاطر أمنية.

اختيار وحدات PowerShell والنطاقات الصحيحة

قبل كتابة أي سطر من منطق النص، عليكم تجهيز أدواتكم. تطورت منظومة PowerShell لدى Microsoft، والاعتماد على الوحدات القديمة لن يؤدي إلا إلى تحذيرات إيقاف ونصوص معطلة. يجب أن تتضمن أدواتكم الأساسية ما يلي:

  • Microsoft Graph PowerShell: المعيار الحديث لإدارة المستخدمين والمجموعات وكائنات الدليل.
  • ExchangeOnlineManagement: ضرورية لتدقيق صناديق البريد وقواعد إعادة التوجيه وترخيص صناديق البريد المشتركة.
  • PnP.PowerShell: بالغة الأهمية لمراجعة مواقع SharePoint وروابط الضيوف وتوسّع المشاركة الخارجية.

تأكدوا من تطبيق مبدأ أقل الامتيازات عند منح الأذونات لنصوصكم. لا تستخدموا أبدًا بيانات اعتماد Global Administrator في النصوص الآلية.

تحديد تقارير التدقيق الأسبوعية للقراءة فقط

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

أنشئوا جدولًا أسبوعيًا يُشغّل تدقيقًا شاملًا للقراءة فقط. ينبغي أن يقيّم هذا التدقيق المستخدمين غير النشطين، وقوائم وصول الضيوف، وإسناد التراخيص مقابل نشاط تسجيل الدخول الفعلي، وإعدادات صناديق البريد، ومجموعات Microsoft 365 اليتيمة. ومن خلال إرساء إيقاع أسبوعي، تستبدلون حالات الطوارئ العشوائية بمراجعة لا تستغرق عشر دقائق لتقارير نظيفة مُنشأة تلقائيًا.

المقارنة بين سجلات تسجيل الدخول والتراخيص النشطة

السر الحقيقي في تحسين التراخيص هو المقارنة المتقاطعة. الترخيص الموجود على حساب مستخدم لا معنى له إذا لم يُصادق ذلك المستخدم على هويته منذ 90 يومًا. يحتاج نصكم إلى سحب مجموعتين أساسيتين من بيانات Microsoft Entra ID:

  1. SKUs التراخيص المسندة إلى حساب المستخدم.
  2. تاريخ آخر تسجيل دخول للمستخدم (التفاعلي وغير التفاعلي).

من خلال ربط هاتين المعلومتين باستخدام كائنات PowerShell، يمكنك حساب هدر التراخيص فوراً. إذا تجاوز آخر تسجيل دخول للمستخدم حداً محدداً (مثل 60 أو 90 يوماً)، يضع السكربت علامة على هذا الحساب بوصفه مرشحاً لاسترجاع الترخيص.

أتمتة تسليم التقارير وتخزين المخرجات

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

بعد ذلك، اجعل السكربت يرسل الملخص بالبريد الإلكتروني إلى قائمة توزيع حوكمة تقنية المعلومات لديك، أو ينشره مباشرةً في قناة مخصصة في Microsoft Teams عبر webhook. إضافةً إلى ذلك، خزّن ملفات CSV الخام في مكتبة مستندات حوكمة مؤمّنة في SharePoint حتى تحتفظ بسجل تاريخي موثّق لأغراض الامتثال.

الجدولة بأمان باستخدام Azure Automation و Task Scheduler

أين يجب أن تُحفظ هذه السكربتات؟ يمكنك تشغيلها من جهاز محلي أو من خادم Windows عبر Task Scheduler باستخدام مخزن بيانات اعتماد آمن، لكن النهج المناسب للمؤسسات هو Azure Automation.

عند نشر سكربتاتك كـ runbooks في Azure Automation والمصادقة عبر Managed Identity، تتخلص من خطر كلمات المرور المضمّنة في الشيفرة أو أسرار مبدأ الخدمة المنتهية الصلاحية. تتولى Azure Automation بسلاسة بيئة التنفيذ والتسجيل ومعالجة الأخطاء في السحابة.

تطبيق ضوابط الحماية والامتثال

الأتمتة بلا ضوابط حماية كارثة تنتظر وقوعها. لحماية المستأجر لديك، ابنِ الضمانات التالية ضمن خط أنابيب الأتمتة:

  • التسجيل المفصّل: سجّل كل خطوة من خطوات تنفيذ السكربت مع معرّفات الارتباط.
  • كتل Try/Catch: تعامل مع التقييد (throttling) ومهلات الشبكة وأخطاء الأذونات بسلاسة، مع إرسال تنبيهات إلى صندوق بريد مشترك عند فشل أي تشغيل.
  • طوابير الإجراءات المعلّقة: بدلاً من سحب التراخيص تلقائياً، وجّه الإجراءات عالية التأثير عبر طابور "معلّق" أو عبر سير عمل للموافقة أولاً.

مراحل تنفيذ استراتيجية المعالجة

لا تحاول أتمتة كل شيء منذ اليوم الأول. نفّذ استراتيجية المعالجة على مراحل واضحة:

  • الأسبوعان 1-2: تقارير فقط. اجمع البيانات، وراجع النتائج الإيجابية الخاطئة، وعدّل قوائم الاستثناءات لديك.
  • الأسبوعان 3-4: إجراءات خفيفة. ابدأ بإنهاء صلاحية روابط الضيوف القديمة، وعرض توصيات إزالة التراخيص التي تتطلب موافقة يدوية.
  • مستمر: أتمت العناصر منخفضة المخاطر، مع الإبقاء على بوابات موافقة بشرية للتغييرات الإتلافية.

استكشاف أخطاء الأتمتة الشائعة في PowerShell وإصلاحها

حتى أفضل السكربتات تصادف عثرات في الطريق. إذا واجهت نتائج فارغة، فتحقق مرتين من أذونات Graph وإصدارات الوحدات، واختبر الاستعلام في Graph Explorer لعزل المشكلة. وإذا واجهت إخفاقات عشوائية، فمن المرجح أن سكربتك يصطدم بحدود التقييد (throttling). طبّق التراجع الأسي (exponential backoff) ومنطق إعادة المحاولة للحفاظ على استقرار تشغيلك. وأخيراً، احذر من النتائج الإيجابية الخاطئة بالحفاظ على قائمة سماح قوية لحسابات الخدمة وحسابات الطوارئ (break-glass).

الأسئلة المتداولة

هل ستؤدي الأتمتة إلى تعطيل المستأجر لديّ؟

لا، بشرط أن تبدأ بالوضع للقراءة فقط، وأن تضيف الموافقات، وأن تقيّد الأذونات الممنوحة لحسابات الأتمتة بصرامة.

هل أحتاج إلى Graph PowerShell الآن؟

نعم، فهو المسار الحديث للمستقبل. استخدمه مع وحدات Exchange Online وPnP لتغطية جميع أسطح الإدارة لديك.

كم من الوقت يستغرق رؤية العائد على الاستثمار؟

عادةً ما يكشف التشغيل الأسبوعي الأول عن كمية مفاجئة من التراخيص غير المستخدمة وحسابات الضيوف القديمة، مما يتيح فرصاً فورية لخفض التكاليف.

ماذا عن البيئات متعددة المواقع أو مزودي الخدمات المُدارة (MSPs)؟

اجعل إعدادات المستأجرات قابلة للتهيئة بالمعاملات (Parameterize)، ومركزِ البنية التحتية للتسجيل لديك، وضع وسوماً على تقارير المخرجات بمعرّف المستأجر (tenant ID) للتوسع عبر بيئات متعددة.

الخاتمة

تُعد أتمتة تحسين تراخيص Microsoft 365 من أعلى المشاريع أثراً التي يمكن أن يتولاها مسؤول النظام. فهي توقف الهدر الشهري في إنفاق البرمجيات، وتعزز وضعك الأمني عبر تنظيف الحسابات القديمة، وتحررك من فحوصات البوابة اليدوية المرهقة.

إذا كنت ترغب في الاطلاع على شرح كامل لهذه المفاهيم، بما في ذلك تحليلات مباشرة للسكربتات ونصائح معمارية أعمق، فلا تفوّت حلقة البودكاست ذات الصلة: Automate Microsoft 365 Tenant Cleanup with PowerShell. تابعنا وارتقِ بمهاراتك في الأتمتة اليوم!

Entities in this article

PowerShell Microsoft 365 Shared mailbox Automation Azure Automation Exchange Online SharePoint Microsoft Graph Microsoft 365 admin center Microsoft Graph PowerShell

Related articles

RSS