MD-102 [17] - Automation with PowerShell & Microsoft Graph

🎯 Automation with PowerShell & Microsoft Graph — الأتمتة عبر PowerShell و Microsoft Graph

مرحباً بك في الوحدة السابعة عشرة — بوابة الدخول إلى عالم أتمتة إدارة الأجهزة باحترافية. في هذه الوحدة ستتعلم كيف تتحول من مسؤول يُنفّذ المهام يدوياً إلى مهندس أتمتة يبني أنظمة تُدير نفسها بنفسها. سنبدأ بفهم Microsoft Graph API، العمود الفقري البرمجي الذي يربط كل خدمات Microsoft 365 ببعضها، ونتعلم كيف نستخدم Graph Explorer لاستكشاف الإمكانيات. ثم ننتقل إلى PowerShell، الأداة الأقوى في ترسانة مسؤول Intune، حيث سنكتب سكربتات حقيقية لأتمتة المهام اليومية والعمليات الجماعية. وفي الختام سنطبق ما تعلمناه في سيناريوهات أتمتة واقعية تشمل استيراد الأجهزة وتعيين التراخيص وإنشاء التقارير التلقائية وجدولة السكربتات. هذه الوحدة هي التي تصنع الفارق بين مسؤول عادي ومسؤول استثنائي!

1️⃣ What is Microsoft Graph — ما هو Microsoft Graph

📖 Microsoft Graph API هو واجهة برمجة تطبيقات موحدة من نوع REST API تمنحك نقطة وصول واحدة لجميع بيانات وخدمات Microsoft 365 بما فيها Intune وEntra ID وExchange وSharePoint.
بدلاً من تعلم عدة واجهات برمجية مختلفة لكل خدمة، تتعلم Graph مرة واحدة وتصل إلى كل شيء — المستخدمين والأجهزة والتطبيقات والبريد الإلكتروني والملفات والتقارير.
📋 ماذا يمكنك الوصول إليه عبر Microsoft Graph:
  • المستخدمون والمجموعات Users & Groups: إنشاء وتعديل وحذف المستخدمين، إدارة عضويات المجموعات، استعراض خصائص الحسابات، وإدارة كلمات المرور والتراخيص برمجياً.
  • الأجهزة Devices: استعراض الأجهزة المسجلة في Intune، تنفيذ إجراءات عن بُعد مثل المسح أو إعادة التشغيل، وجلب تقارير الامتثال والتكوين.
  • التطبيقات Applications: نشر التطبيقات وإدارتها، مراقبة حالة التثبيت، إدارة سياسات حماية التطبيقات وسياسات التكوين.
  • الأمان Security: الوصول لبيانات Microsoft Defender والتهديدات والثغرات الأمنية، وإدارة سياسات الأمان وConditional Access.
  • التقارير Reports: استخراج تقارير استخدام الخدمات والامتثال والتدقيق برمجياً لبناء لوحات معلومات مخصصة وأنظمة تنبيه.
شركة ناشئة تضم 200 موظف وتستخدم Microsoft 365. عند تعيين موظف جديد، يحتاج قسم تقنية المعلومات لإضافته إلى 5 مجموعات وتعيين 3 تراخيص وتسجيل جهازه في Intune. يدوياً هذا يستغرق 30 دقيقة. باستخدام Microsoft Graph، يكتب المطور سكربتاً واحداً ينفذ كل هذه العمليات في 10 ثوانٍ — من أي مكان في العالم.
🔑 نصيحة أساسية: Microsoft Graph ليس مجرد واجهة برمجية للاستعلام عن البيانات — بل هو واجهة شاملة تسمح بعمليات الكتابة والتعديل والحذف. كل ما يمكنك فعله من خلال بوابات الإدارة يمكنك أتمتته عبر Graph. الفرق: البوابة تحتاج نقرات، وGraph يحتاج سكربتاً واحداً.

2️⃣ Graph Explorer — مستكشف Graph

📖 Graph Explorer هو أداة مجانية ومتاحة عبر المتصفح من مايكروسوفت تتيح لك تجربة Microsoft Graph API مباشرة دون كتابة أي كود، مع أمثلة جاهزة ووثائق تفاعلية.
هذه الأداة هي أفضل صديق للمطور ومسؤول Intune في بداية رحلة التعلم — تمنحك بيئة آمنة للتجربة والخطأ قبل كتابة السكربتات الحقيقية.
📋 كيف تبدأ مع Graph Explorer:
  • تسجيل الدخول: افتح Graph Explorer من المتصفح وسجل دخولك بحساب Microsoft 365 — ستحتاج لموافقة على الصلاحيات المطلوبة للتجربة.
  • اختيار الطلب: اختر نوع العملية: GET لاستعراض البيانات، POST لإنشاء عنصر جديد، PATCH للتعديل، أو DELETE للحذف.
  • تحديد نقطة النهاية Endpoint: أدخل مسار API مثل /v1.0/users لاستعراض المستخدمين، أو /v1.0/deviceManagement/managedDevices لاستعراض الأجهزة.
  • تنفيذ وتحليل: اضغط Run Query وشاهد النتيجة بصيغة JSON مع رموز الحالة HTTP Status Codes — استخدم علامة التبويب Sample Queries لاستكشاف أمثلة جاهزة.
مسؤول Intune جديد يريد معرفة عدد الأجهزة التي تعمل بنظام Windows 11 في مؤسسته. بدلاً من البحث في البوابة، يفتح Graph Explorer وينفذ: GET /v1.0/deviceManagement/managedDevices?$filter=operatingSystem eq 'Windows'&$select=deviceName,osVersion. خلال ثوانٍ، يحصل على قائمة دقيقة بكل الأجهزة وإصداراتها جاهزة للنسخ والتحليل — دون الحاجة لكتابة سطر كود واحد.

3️⃣ Permissions: Delegated vs Application — الصلاحيات: المفوضة مقابل التطبيق

📖 الصلاحيات Permissions في Microsoft Graph تحدد ما يمكن لسكربتك أو تطبيقك فعله، وتنقسم إلى نوعين رئيسيين: صلاحيات مفوضة Delegated تعمل بوجود مستخدم مسجل الدخول، وصلاحيات تطبيق Application تعمل بدون تدخل بشري.
اختيار النوع المناسب من الصلاحيات هو قرار أمني بالغ الأهمية — الخطأ فيه قد يفتح ثغرات أمنية خطيرة.
📋 مقارنة مفصلة بين نوعي الصلاحيات:
  • الصلاحيات المفوضة Delegated Permissions: تعمل بوجود مستخدم مسجل دخوله، وتقتصر على ما يستطيع هذا المستخدم فعله أصلاً — تستخدم في التطبيقات التي يتفاعل معها المستخدم مباشرة مثل تطبيقات الويب وسطح المكتب.
  • صلاحيات التطبيق Application Permissions: تعمل بدون وجود مستخدم، وتحتاج لموافقة المسؤول العام Admin Consent مرة واحدة — تستخدم في الخدمات الخلفية وسكربتات الأتمتة المجدولة التي تعمل في أوقات لا يوجد فيها بشر.
  • الموافقة الإدارية Admin Consent: بعض الصلاحيات الحساسة (مثل قراءة كل بيانات المستخدمين أو إدارة الأجهزة) تحتاج لموافقة صريحة من مسؤول عام قبل أن يتمكن أي تطبيق من استخدامها.
  • نطاق الصلاحية Scope: يمكنك تحديد نطاق الصلاحية بدقة — مثلاً User.Read لقراءة بيانات المستخدم الحالي فقط، أو User.Read.All لقراءة بيانات جميع المستخدمين.
في مصرف كبير، يحتاج فريق تقنية المعلومات لسكربت ليلي يفحص حالة الامتثال لجميع الأجهزة ويرسل تقريراً عند الساعة 3 فجراً. لا يوجد موظف يعمل في هذا الوقت لتسجيل الدخول. الحل: استخدام Application Permissions مع DeviceManagementManagedDevices.Read.All بعد موافقة المسؤول العام. السكربت يعمل كل ليلة تلقائياً دون أي تدخل بشري.

4️⃣ Common Graph Endpoints — نقاط النهاية الشائعة

📖 نقاط النهاية Graph Endpoints هي العناوين البرمجية التي ترسل إليها طلبات HTTP للحصول على بيانات محددة أو تنفيذ عمليات معينة على موارد Microsoft 365.
حفظ نقاط النهاية الشائعة يسرّع عملك بشكل هائل — بدلاً من البحث في الوثائق كل مرة، تستدعي النقطة التي حفظتها مباشرة.
📋 أهم نقاط النهاية لمسؤول Intune:
  • الأجهزة المدارة: GET /deviceManagement/managedDevices — يعرض كل الأجهزة المسجلة في Intune مع خصائصها الكاملة (الاسم، نظام التشغيل، حالة الامتثال، آخر اتصال).
  • سياسات التكوين: GET /deviceManagement/deviceConfigurations — يعرض كل سياسات التكوين المطبقة على الأجهزة مع تفاصيل الإعدادات.
  • تطبيقات الهاتف المحمول: GET /deviceAppManagement/mobileApps — يعرض كل التطبيقات المنشورة عبر Intune مع حالة التثبيت لكل منها.
  • الإجراءات عن بُعد: POST /deviceManagement/managedDevices/{id}/rebootNow — إعادة تشغيل جهاز محدد عن بُعد.
  • المستخدمون: GET /users — استعراض كل المستخدمين في Entra ID مع إمكانية التصفية والفرز والبحث.
مسؤول Intune يريد تنظيف الأجهزة التي لم تتصل بالخدمة منذ أكثر من 90 يوماً. باستخدام نقطة النهاية GET /deviceManagement/managedDevices?$filter=lastSyncDateTime le 2026-04-25 يحصل على قائمة بكل الأجهزة غير النشطة. يضيف حلقة PowerShell تحذف هذه الأجهزة تلقائياً عبر DELETE /deviceManagement/managedDevices/{id} — تنظيف كامل لبيئة 5000 جهاز في دقائق.
تخيل أن Microsoft Graph يشبه لوحة مفاتيح كهربائية في مبنى ضخم. بدلاً من الذهاب لكل غرفة لتشغيل أو إطفاء الأضواء يدوياً، تقف عند اللوحة المركزية وتضغط الأزرار المناسبة — كل زر يتحكم في دائرة كهربائية محددة. هكذا Graph Endpoints: كل مسار URL هو زر يتحكم في جزء محدد من بيئة Microsoft 365، وأنت تختار الزر المناسب لتحقيق هدفك.
خلاصة Microsoft Graph API:
  • Microsoft Graph هو الواجهة البرمجية الموحدة لكل خدمات Microsoft 365 بما فيها Intune وEntra ID وDefender.
  • Graph Explorer هو مختبرك الآمن لتجربة الـ API دون كتابة كود، مع أمثلة جاهزة تغطي كل السيناريوهات.
  • الصلاحيات تنقسم إلى مفوضة (بوجود مستخدم) وتطبيقية (للأتمتة بدون تدخل بشري) — اختر النوع المناسب لكل سيناريو.
  • نقاط النهاية الشائعة تغطي الأجهزة والسياسات والتطبيقات والإجراءات عن بُعد والمستخدمين.

📖 جدول المصطلحات

المصطلح (English)الترجمةالمفهوم
Microsoft Graph APIواجهة Microsoft Graph البرمجيةواجهة REST موحدة للوصول لجميع بيانات وخدمات Microsoft 365.
Graph Explorerمستكشف Graphأداة مجانية من مايكروسوفت لتجربة Graph API مباشرة من المتصفح.
Delegated Permissionصلاحية مفوضةصلاحية تعمل بوجود مستخدم مسجل وتقتصر على صلاحياته الأصلية.
Application Permissionصلاحية تطبيقصلاحية تعمل بدون تدخل بشري وتحتاج موافقة المسؤول العام.
Endpointنقطة النهايةعنوان URL برمجي يُرسل إليه طلب HTTP للحصول على بيانات محددة.
Admin Consentالموافقة الإداريةموافقة صريحة من المسؤول العام لتفعيل صلاحيات حساسة للتطبيق.
REST APIواجهة برمجة تطبيقات RESTنمط معماري للواجهات البرمجية يعتمد على HTTP وJSON.

1️⃣ Microsoft Graph PowerShell SDK — حزمة تطوير PowerShell لـ Graph

📖 Microsoft Graph PowerShell SDK هي مجموعة من وحدات PowerShell الرسمية من مايكروسوفت التي تغلف Graph API في أوامر سهلة الاستخدام، مما يسمح لك بإدارة كامل بيئة Microsoft 365 من سطر الأوامر.
بدلاً من كتابة طلبات HTTP معقدة مع توكنات المصادقة ورؤوس الطلبات، تكتب أوامر PowerShell بسيطة وواضحة يقوم الـ SDK بترجمتها تلقائياً إلى طلبات Graph.
📋 لماذا تستخدم Graph PowerShell SDK:
  • أتمتة المهام المتكررة: كل مهمة تفعلها يومياً عبر البوابة (التحقق من الامتثال، تعيين ترخيص، تحديث مجموعة) يمكن تحويلها إلى أمر PowerShell واحد ينفذ في ثوانٍ.
  • الإدارة الجماعية Bulk Operations: تطبيق تغيير على 5000 جهاز أو مستخدم في دقائق بدلاً من النقر 5000 مرة في البوابة — الفرق بين ساعة وأسبوع من العمل.
  • التقارير المخصصة: جمع بيانات من عدة مصادر (Intune + Entra ID + Exchange) في تقرير واحد مخصص يلبي احتياجات مؤسستك تحديداً.
  • التكامل مع أنظمة أخرى: ربط Intune مع نظام الموارد البشرية أو نظام إدارة خدمات تقنية المعلومات ITSM أو أي نظام آلي في مؤسستك.
شركة اتصالات لديها 10000 جهاز. كل شهر، يحتاج فريق تقنية المعلومات لتحديث معلومات القسم Department لـ 2000 جهاز بسبب تنقلات الموظفين. عبر البوابة هذا يستغرق 40 ساعة عمل. باستخدام PowerShell وCSV مستخرج من نظام HR، يكتب المسؤول سكربتاً يقرأ الملف ويحدث كل جهاز في 3 دقائق — توفير 39 ساعة و57 دقيقة شهرياً.

2️⃣ Common Scripts and Automation — السكربتات والأتمتة الشائعة

📖 السكربتات الشائعة هي مجموعة من أنماط PowerShell التي تكرر استخدامها في معظم بيئات Intune — تغطي استعراض الأجهزة والتحقق من الامتثال وإدارة المجموعات وإنشاء التقارير.
احفظ هذه الأنماط جيداً لأنها ستوفر عليك ساعات لا تحصى من العمل اليدوي.
📋 أهم أنماط السكربتات لكل مسؤول Intune:
  • جلب الأجهزة غير الممتثلة: سكربت بسيط يستخدم Get-MgDeviceManagementManagedDevice مع فلتر complianceState لاستخراج قائمة بكل الأجهزة غير الممتثلة وإرسالها بالبريد الإلكتروني لمديري الأقسام.
  • تعيين التراخيص الجماعي: سكربت يقرأ قائمة مستخدمين من ملف CSV ويستخدم Set-MgUserLicense لتعيين تراخيص Microsoft 365 لمئات الموظفين الجدد دفعة واحدة.
  • تصدير مخزون الأجهزة: سكربت يستعرض كل الأجهزة المسجلة ويصدر معلوماتها (الاسم، الطراز، نظام التشغيل، آخر اتصال، حالة الامتثال) إلى ملف Excel للتدقيق والمتابعة.
  • تحديث المجموعات الديناميكي: سكربت يضيف أو يزيل الأجهزة من المجموعات بناءً على معايير محددة (مثل: جميع أجهزة Windows 10 التي لم تحدث إلى Windows 11).
  • مراقبة صحة الخدمة: سكربت يستخدم Invoke-MgGraphRequest لفحص حالة التسجيل والتطبيقات والتحديثات يومياً وإرسال تنبيه عند اكتشاف مشكلة.
في مستشفى يضم 3000 جهاز طبي متصل، يجب على قسم تقنية المعلومات التأكد شهرياً من أن جميع الأجهزة محدثة وممتثلة. يكتب المسؤول سكربتاً واحداً يجمع حالة التحديثات والامتثال لكل جهاز، ويصدر تقريراً مرمزاً بالألوان: أخضر للأجهزة السليمة، أصفر للأجهزة التي تحتاج مراجعة، أحمر للأجهزة الحرجة. التقرير الذي كان يستغرق 3 أيام يدوياً أصبح جاهزاً في 5 دقائق.

3️⃣ Bulk Operations — العمليات الجماعية

📖 العمليات الجماعية Bulk Operations هي تقنية تنفيذ نفس الإجراء على عدد كبير من العناصر (أجهزة، مستخدمين، تطبيقات) دفعة واحدة عبر سكربت PowerShell بدلاً من معالجة كل عنصر على حدة.
هذه هي القوة الحقيقية لـ PowerShell: ما يستغرق أياماً في البوابة يُنفذ في دقائق بسكربت واحد.
📋 تقنيات العمليات الجماعية الفعالة:
  • المعالجة المتوازية Parallel Processing: باستخدام ForEach-Object -Parallel في PowerShell 7، يمكنك تنفيذ العمليات على عدة أجهزة في وقت واحد بدلاً من التسلسل — مضاعفة السرعة عدة مرات.
  • معالجة الدفعات Batching: تقسيم 10000 عنصر إلى دفعات كل منها 500 عنصر وإرسالها كطلبات مجمعة — تقليل عدد الاتصالات بالخادم وتسريع التنفيذ.
  • معالجة الأخطاء: إضافة معالجة للأخطاء Error Handling عبر try/catch لحصر العناصر الفاشلة وإعادة محاولتها تلقائياً دون التأثير على باقي الدفعة.
  • التسجيل والمراقبة: كتابة سجل تفصيلي Log لكل عملية جماعية يوثق وقت البدء والانتهاء وعدد النجاح والفشل وأسباب الفشل — ضروري لعمليات التدقيق.
مؤسسة تعليمية تدمج 3 فروع وتحتاج لنقل 5000 جهاز من Intune tenant قديم إلى tenant جديد. يدوياً هذا مستحيل. المسؤول يكتب سكربتاً يستخدم Bulk Operations مع معالجة متوازية: يستخرج بيانات كل الأجهزة من المستأجر القديم، يصدرها إلى CSV، ثم يستوردها في المستأجر الجديد مع إعادة تعيين السياسات والمجموعات. العملية التي كانت ستحتاج شهوراً من العمل اليدوي اكتملت في 4 ساعات.

4️⃣ Authentication Methods — طرق المصادقة

📖 طرق المصادقة في PowerShell تحدد كيف يثبت سكربتك هويته لـ Microsoft Graph قبل أن يُسمح له بالوصول للبيانات، وتتراوح بين المصادقة التفاعلية (للسكربتات اليدوية) والمصادقة غير التفاعلية (للسكربتات المجدولة).
اختيار طريقة المصادقة الخاطئة هو السبب الأول لفشل سكربتات الأتمتة عند جدولتها.
📋 طرق المصادقة المتاحة:
  • المصادقة التفاعلية Interactive Authentication: تفتح نافذة متصفح لتسجيل الدخول — تستخدم عند تشغيل السكربت يدوياً، وتدعم MFA وConditional Access بشكل طبيعي.
  • المصادقة بالشهادة Certificate-based Authentication: تستخدم شهادة رقمية مخزنة على الخادم بدلاً من كلمة مرور — مثالية للسكربتات المجدولة التي تعمل بدون تدخل بشري، والأكثر أماناً.
  • المصادقة بالسر Client Secret: تستخدم كلمة سر تُنشأ من تسجيل التطبيق في Entra ID — بسيطة لكن أقل أماناً من الشهادة ويجب تدويرها دورياً.
  • الهوية المدارة Managed Identity: تستخدم في بيئة Azure فقط (مثل Azure Automation أو Azure Functions) — لا تحتاج أي أسرار أو شهادات، الأكثر أماناً على الإطلاق.
مؤسسة مالية تحتاج لسكربت يومي يحذف الأجهزة غير النشطة منذ 180 يوماً ويعمل عند الساعة 11 مساءً. يستخدم المسؤول Certificate-based Authentication مع Azure Automation Runbook. السكربت يعمل كل ليلة تلقائياً دون أي تدخل بشري، والشهادة تجدد تلقائياً — أمان كامل مع صفر تدخل يدوي.
تخيل أن PowerShell هو رافعة شوكية ذكية في مستودع ضخم. بدلاً من أن تحمل كل صندوق بيديك وتنقله واحداً واحداً (هكذا العمل عبر البوابة)، تبرمج الرافعة لنقل 500 صندوق دفعة واحدة إلى المكان الصحيح، وتصنفها حسب اللون والحجم، وتُنشئ تقريراً بالمخزون المتبقي — كل ذلك بضغطة زر واحدة. هذا هو الفارق الذي تصنعه PowerShell في حياتك كمسؤول Intune.
خلاصة PowerShell لإدارة Intune:
  • Microsoft Graph PowerShell SDK يغلف Graph API في أوامر سهلة، مما يسمح بأتمتة كل مهام Intune.
  • السكربتات الشائعة تغطي جلب الأجهزة غير الممتثلة وتعيين التراخيص وتصدير البيانات وتحديث المجموعات.
  • العمليات الجماعية تستخدم المعالجة المتوازية ومعالجة الدفعات لتنفيذ آلاف العمليات في دقائق.
  • المصادقة بالشهادة والهوية المدارة هما الخياران الآمنان للسكربتات المجدولة بدون تدخل بشري.

📖 جدول المصطلحات

المصطلح (English)الترجمةالمفهوم
PowerShellباورشيلبيئة سطر أوامر ولغة برمجة نصية من مايكروسوفت للأتمتة.
Microsoft Graph PowerShell SDKحزمة تطوير Graph لـ PowerShellمجموعة وحدات PowerShell رسمية للتعامل مع Microsoft Graph API.
Bulk Operationsالعمليات الجماعيةتنفيذ نفس الإجراء على آلاف العناصر دفعة واحدة بسكربت واحد.
Certificate-based Authenticationالمصادقة بالشهادةطريقة مصادقة تستخدم شهادة رقمية بدلاً من كلمة مرور للسكربتات.
Managed Identityالهوية المدارةهوية تلقائية في Azure لا تحتاج أسراراً — الطريقة الأكثر أماناً.
Parallel Processingالمعالجة المتوازيةتنفيذ عدة عمليات في وقت واحد بدلاً من التسلسل لتسريع الأداء.
Error Handlingمعالجة الأخطاءآلية try/catch للتعامل مع فشل العمليات دون توقف السكربت بالكامل.

1️⃣ Automated Device Import — أتمتة استيراد الأجهزة

📖 أتمتة استيراد الأجهزة هي عملية استخدام PowerShell لإضافة مئات أو آلاف الأجهزة الجديدة إلى Intune دفعة واحدة من ملفات خارجية بدلاً من تسجيلها يدوياً جهازاً تلو الآخر.
هذه السيناريو مثالي لمشاريع الترحيل الكبيرة من أنظمة قديمة أو عند نشر أجهزة جديدة على نطاق واسع.
📋 خطوات سيناريو استيراد الأجهزة الآلي:
  • تجهيز ملف المصدر: جهز ملف CSV يحتوي على بيانات الأجهزة: الرقم التسلسلي Serial Number، وطراز الجهاز، واسم المستخدم المسؤول، والقسم التابع له.
  • استيراد عبر Windows Autopilot: استخدم أمر Import-AutopilotCSV لرفع ملف CSV مباشرة إلى خدمة Autopilot وتسجيل مئات الأجهزة دفعة واحدة.
  • تعيين ملفات التكوين: بعد الاستيراد، عيّن ملف Autopilot Deployment Profile المناسب لكل مجموعة أجهزة تلقائياً عبر Group Tag.
  • إنشاء تقرير التحقق: سكربت يتحقق من نجاح استيراد كل جهاز ويصدر تقريراً بالأجهزة الناجحة والفاشلة مع أسباب الفشل.
سلسلة فنادق تطلب 1500 جهاز Surface جديد لموظفي الاستقبال. المورّد يرسل ملف CSV يحتوي على الأرقام التسلسلية لجميع الأجهزة. مسؤول Intune يستخدم سكربت PowerShell لاستيراد الـ 1500 جهاز في Autopilot دفعة واحدة في أقل من 5 دقائق — كل جهاز يصبح جاهزاً تلقائياً عند أول تشغيل.

2️⃣ License Assignment Automation — أتمتة تعيين التراخيص

📖 أتمتة تعيين التراخيص تحول عملية إدارة تراخيص Microsoft 365 من مهمة يدوية تستغرق ساعات إلى نظام آلي يرتبط مباشرة بنظام الموارد البشرية HR.
هذا السيناريو لا يوفر الوقت فقط — بل يمنع الأخطاء المكلفة مثل نسيان تعيين ترخيص لموظف جديد أو ترك ترخيص لموظف غادر المؤسسة.
📋 آلية أتمتة التراخيص:
  • الربط مع نظام HR: استخراج قائمة الموظفين الجدد والمستقيلين من نظام الموارد البشرية بشكل دوري (يومي أو أسبوعي) ومزامنتها تلقائياً.
  • الترخيص بناءً على القسم: كل قسم له حزمة تراخيص افتراضية — المحاسبة تحصل على Microsoft 365 E3، قسم تقنية المعلومات يحصل على Microsoft 365 E5، وهكذا.
  • الترخيص الجماعي: استخدام Set-MgUserLicense داخل حلقة لتعيين نفس الترخيص لمجموعة من المستخدمين دفعة واحدة.
  • إلغاء التراخيص تلقائياً: عند مغادرة موظف، السكربت يُلغي تراخيصه تلقائياً لتحريرها وإعادة استخدامها — توفير تكاليف التراخيص غير المستخدمة.
شركة تكنولوجيا توظف 50 شخصاً شهرياً. بدون أتمتة، مسؤول تقنية المعلومات يقضي 5 ساعات شهرياً في تعيين التراخيص يدوياً — ويتأخر بعض الموظفين الجدد يومين حتى يحصلوا على بريدهم الإلكتروني. مع سكربت الأتمتة: نظام HR يصدر قائمة الموظفين الجدد آلياً كل صباح، السكربت يعين التراخيص فوراً، والموظف الجديد يجد بريده جاهزاً قبل بدء يومه الأول.

3️⃣ Compliance Report Automation — أتمتة تقارير الامتثال

📖 أتمتة تقارير الامتثال تلغي الحاجة لفتح Intune يدوياً كل أسبوع لاستخراج التقارير — بدلاً من ذلك، يُنشئ سكربت التقرير ويحلله ويرسله للجهات المعنية تلقائياً في موعد محدد.
هذا السيناريو يحول التقارير من "عبء أسبوعي" إلى "معلومة تصل إليك وأنت تتناول قهوتك الصباحية".
📋 مكونات سيناريو أتمتة التقارير:
  • استخراج البيانات: استخدام Get-MgDeviceManagementManagedDevice لاستعراض جميع الأجهزة مع فلترة حسب حالة الامتثال — ممتثل، غير ممتثل، في فترة سماح.
  • تحليل البيانات: تجميع النتائج وحساب النسب المئوية — 94% ممتثلة، 4% غير ممتثلة، 2% في فترة سماح — مع تحديد الأجهزة ذات المخاطر العالية.
  • إنشاء التقرير: تصدير النتائج إلى ملف Excel منسق أو HTML للبريد الإلكتروني مع رسوم بيانية ونسب ومقارنات مع الأسابيع السابقة.
  • الإرسال التلقائي: إرسال التقرير بالبريد الإلكتروني عبر Send-MgUserMail إلى قائمة المديرين المحددين مسبقاً كل يوم اثنين الساعة 8 صباحاً.
مدير الأمن السيبراني في وزارة حكومية يحتاج لتقرير امتثال أسبوعي يُعرض على الوكيل كل يوم أحد. بدلاً من العمل يوم السبت لإعداد التقرير، يبرمج سكربتاً عبر Azure Automation يستخرج البيانات كل سبت فجراً، يحلل النسب، يُنشئ تقريراً بـ Excel، ويرسله إلى بريد الوكيل مباشرة. المدير يستيقظ صباح السبت ليجد التقرير جاهزاً في بريده — دون أن يفتح Intune طوال الأسبوع.

4️⃣ Scheduled Scripts with Azure Automation — جدولة السكربتات عبر Azure Automation

📖 Azure Automation هي خدمة سحابية من مايكروسوفت تسمح لك بتشغيل سكربتات PowerShell وفق جدول زمني محدد دون الحاجة لخادم يعمل على مدار الساعة.
هذه الخدمة تحول سكربتاتك اليدوية إلى "روبوتات رقمية" تعمل في الخلفية 24 ساعة طوال أيام الأسبوع.
📋 ركائز Azure Automation:
  • حسابات الأتمتة Automation Accounts: الحاوية الأساسية التي تضم كل موارد الأتمتة — السكربتات والجداول والشهادات والمتغيرات.
  • سجلات التشغيل Runbooks: سكربتات PowerShell أو Python المخزنة في حساب الأتمتة والقابلة للتنفيذ يدوياً أو آلياً حسب جدول.
  • الجداول Schedules: تحديد متى وكم مرة ينفذ السكربت — يومياً عند الساعة 2 فجراً، أو كل أول شهر، أو كل 6 ساعات.
  • الأصول المشتركة Shared Resources: تخزين آمن للشهادات والمتغيرات والاتصالات ووحدات PowerShell المستخدمة في السكربتات.
شركة لوجستية تدير 8000 جهاز Windows منتشر عبر 20 مستودعاً. يحتاج المسؤول لسكربت ينظف الملفات المؤقتة كل ليلة، وآخر يراقب مساحة القرص كل 6 ساعات، وثالث يفحص الامتثال كل صباح. بدلاً من 3 خوادم تعمل 24/7، يستخدم Azure Automation مع 3 Runbooks وجداول — تكلفة صفر للخوادم، وصفر تدخل بشري، وبيئة أجهزة نظيفة دائماً.
تخيل أن السكربتات هي وصفات طبخ مفصلة تكتبها مرة واحدة. Azure Automation هو الشيف الآلي الذي ينفذ هذه الوصفات في المواعيد التي تحددها: كل صباح يحضر تقرير الإفطار (الامتثال)، كل مساء ينظف المطبخ (الملفات المؤقتة)، وفي نهاية كل شهر يقوم بالجرد الكامل (تصدير مخزون الأجهزة). أنت تكتب الوصفة مرة واحدة، وهو ينفذها إلى الأبد.
خلاصة سيناريوهات الأتمتة:
  • أتمتة استيراد الأجهزة عبر Autopilot توفر أياماً من العمل اليدوي عند نشر مئات الأجهزة الجديدة.
  • أتمتة التراخيص تربط Microsoft 365 بنظام HR وتمنع الأخطاء المكلفة وتوفر التراخيص غير المستخدمة.
  • أتمتة تقارير الامتثال تحول المهمة الأسبوعية المرهقة إلى تقرير يصل بريدك تلقائياً كل صباح.
  • Azure Automation يوفر منصة آمنة وموثوقة لتشغيل سكربتاتك تلقائياً دون الحاجة لخوادم.

📖 جدول المصطلحات

المصطلح (English)الترجمةالمفهوم
Azure Automationأتمتة Azureخدمة سحابية لتشغيل سكربتات PowerShell وفق جدول زمني دون خوادم.
Runbookسجل التشغيلسكربت PowerShell مخزن في Azure Automation وجاهز للتنفيذ آلياً.
Autopilot CSV Importاستيراد ملف CSV لـ Autopilotعملية رفع ملف يحتوي على أرقام تسلسلية لأجهزة جديدة لتسجيلها تلقائياً.
Set-MgUserLicenseأمر تعيين ترخيص المستخدمأمر PowerShell من Graph SDK لتعيين تراخيص Microsoft 365 للمستخدمين.
Group Tagعلامة المجموعةوسم يُضاف للأجهزة في Autopilot لتحديد ملف التكوين المناسب تلقائياً.
Send-MgUserMailأمر إرسال بريد المستخدمأمر PowerShell من Graph SDK لإرسال بريد إلكتروني نيابة عن مستخدم.

1️⃣ Microsoft Security Copilot for Intune — مساعد الأمان لـ Intune

📖 Microsoft Security Copilot هو مساعد أمان مدعوم بالذكاء الاصطناعي يدمج بيانات Intune وDefender وEntra ID لتحليل التهديدات والاستجابة لها، مع قدرة على فهم الاستفسارات باللغة الطبيعية — تسأله "أي الأجهزة معرضة للخطر اليوم؟" فيجيبك بتقرير مفصل.
هذه التقنية تحول استكشاف الأخطاء والتحقيق الأمني من "ساعات من البحث اليدوي" إلى "ثوانٍ من التحليل الآلي".
📋 قدرات Security Copilot لـ Intune:
  • التحقيق في التهديدات: عند اكتشاف تهديد على جهاز، يسأل المسؤول: "ما مدى انتشار هذا التهديد؟" فيحلل Copilot بيانات Defender for Endpoint وIntune ليعرض: عدد الأجهزة المصابة، مسار انتشار التهديد، الثغرات المستغلة، وخطوات الاستجابة الموصى بها.
  • تحليل أداء الأجهزة: استفسارات مثل "لماذا جهاز المستخدم X بطيء؟" تجعل Copilot يحلل بيانات Endpoint Analytics وتقارير الأعطال وسياسات التكوين ليقترح السبب: تطبيق معين يسبب أعطالاً، سياسة تقييدية جداً، أو تحديث معلق يستهلك الموارد.
  • توصيات الوكلاء Agent Recommendations: Copilot لا يكتفي بالتحليل — بل يقترح إجراءات قابلة للتنفيذ. مثلاً: "أقترح استبعاد الجهاز من سياسة التحديث الحالية وتطبيق سياسة تخفيف مؤقتة" — ويوفر زراً واحداً لتطبيق الاقتراح فوراً.
  • استفسارات اللغة الطبيعية: بدلاً من كتابة استعلام KQL معقد لتصدير الأجهزة غير الممتثلة، تكتب ببساطة: "اعرض لي كل أجهزة ويندوز التي فشلت في سياسة BitLocker هذا الأسبوع" — ويولد Copilot التقرير ويعرضه.
  • وكلاء Intune Agents: وكلاء متخصصون يراقبون بيئتك باستمرار: وكيل الامتثال (يرصد تغيرات حالة الأجهزة)، وكيل التطبيقات (يكتشف فشل النشر)، وكيل الأمان (يتكامل مع Defender ليكتشف التهديدات مبكراً).
مسؤول أمن في مؤسسة حكومية يتلقى تنبيهاً من Defender بوجود نشاط مشبوه على 3 أجهزة. بدلاً من قضاء 4 ساعات في فحص سجلات كل جهاز يدوياً والبحث عن الرابط بينها، يكتب في Security Copilot: "حلل التهديد على الأجهزة الثلاثة وهل هو هجوم منسق؟". خلال 30 ثانية، يعرض Copilot: (١) التهديد من نفس العائلة الخبيثة، (٢) جميع الأجهزة الثلاثة فتحت نفس الملف المرفق من نفس البريد الإلكتروني، (٣) اقتراح بعزل الأجهزة فوراً ومنع تشغيل الماكرو مؤقتاً على جميع أجهزة القسم المالي. المسؤول يضغط "تطبيق" — وتُنفذ الإجراءات على الفور. التحقيق الذي كان يستغرق ساعات تم في دقيقة واحدة.
🔑 نصيحة أساسية: SCUs (وحدات الحوسبة الأمنية) تُشترى مسبقاً وتُستهلك مع كل استخدام. قبل تخصيص SCUs لمؤسستك، قدّر حجم الاستخدام المتوقع وابدأ بكمية محافظة وراقب الاستهلاك للشهر الأول قبل زيادة المخصص.
خلاصة Security Copilot:
  • Security Copilot يستخدم الذكاء الاصطناعي لتحليل بيانات Intune وDefender والاستجابة للاستفسارات باللغة الطبيعية.
  • وكلاء Intune المتخصصون يراقبون الامتثال والتطبيقات والأمان باستمرار.
  • إدارة SCUs بعناية لتجنب استنزاف الموارد على استفسارات غير ضرورية.

📖 جدول المصطلحات

المصطلح (English)الترجمةالمفهوم
Security Copilotمساعد الأمانمساعد AI من Microsoft لتحليل بيانات الأمان والأجهزة والاستجابة للاستفسارات الطبيعية
SCUوحدة الحوسبة الأمنيةوحدة قياس استهلاك Security Copilot — كل استفسار يستهلك عدداً منها حسب تعقيده
Promptbookسجل التوجيهقالب استفسار جاهز في Security Copilot يشغّل سلسلة تحليلات بنقرة زر
Agent Recommendationتوصية الوكيلاقتراح إجراء قابل للتنفيذ من Copilot بناءً على تحليل البيانات (يقبل أو يرفض بنقرة)
Natural Language Queryاستفسار باللغة الطبيعيةالسؤال بالعربية أو الإنجليزية العادية بدلاً من لغات الاستعلام التقنية مثل KQL

1️⃣ Custom Compliance Policies — سياسات الامتثال المخصصة

📖 سياسات الامتثال المخصصة Custom Compliance تتجاوز الإعدادات الجاهزة في Intune — تسمح لك بكتابة سكربتات PowerShell تفحص أي شيء على الجهاز وتعيد نتيجة (ممتثل/غير ممتثل) بناءً على منطقك الخاص.
هذه أقوى أداة لفرض معايير مؤسسية فريدة لا تغطيها السياسات الجاهزة: "هل تطبيق المحاسبة مثبت؟" "هل إصدار Java أقل من 8؟" "هل خدمة معينة شغالة؟"
📋 مكونات الامتثال المخصص:
  • سكربت الاكتشاف Discovery Script: سكربت PowerShell يُشغل على الجهاز ويُخرج بيانات بصيغة JSON محددة. يُستخدم لاكتشاف معلومات لا توفرها Intune افتراضياً — مثل إصدار برنامج محاسبة، مفتاح تسجيل معين، أو حالة خدمة مخصصة.
  • مخطط JSON للامتثال: ملف JSON يُعرّف قواعد التقييم: أي قيمة من سكربت الاكتشاف تعني "ممتثل" وأيها تعني "غير ممتثل".
  • الدمج مع Conditional Access: نتيجة الامتثال المخصص تتكامل مع Conditional Access تماماً مثل الامتثال الجاهز — إذا كان الجهاز غير ممتثل، يُمنع من الوصول لتطبيقات المؤسسة.
  • جرد العتاد والبرمجيات: سكربتات الاكتشاف تُستخدم ليس فقط للامتثال، بل أيضاً لبناء جرد دقيق: كل إصدارات البرامج المثبتة، كل قطع العتاد، إعدادات BIOS.
مؤسسة مالية ملزمة بمعيار تنظيمي: "يجب أن يكون تطبيق مكافحة الفيروسات من الفئة A نشطاً ومحدثاً على جميع الأجهزة". لا توجد سياسة جاهزة في Intune تفرق بين فئات مضادات الفيروسات. كتب مسؤول الأمن سكربت PowerShell يفحص اسم مضاد الفيروسات النشط وإصداره وآخر تحديث. ثم أنشأ مخطط JSON يصنف الأجهزة: ممتثل = Defender أو SentinelOne بإصدار حديث. غير ممتثل = أي مضاد آخر أو قاعدة بيانات قديمة. الآن Conditional Access يمنع الأجهزة غير الممتثلة من الوصول لأي تطبيق مؤسسي حتى تُصحح.
خلاصة الامتثال المخصص:
  • سكربتات PowerShell للاكتشاف تفحص أي جانب من الجهاز لا تغطيه السياسات الجاهزة.
  • مخطط JSON يحدد قواعد التقييم المخصصة لمؤسستك.
  • الامتثال المخصص يتكامل كلياً مع Conditional Access.

📖 جدول المصطلحات

المصطلح (English)الترجمةالمفهوم
Custom Complianceالامتثال المخصصسياسة امتثال تعتمد على سكربت PowerShell مخصص بدلاً من الإعدادات الجاهزة في Intune
Discovery Scriptسكربت الاكتشافسكربت PowerShell يُشغل على الجهاز لجمع معلومات مخصصة لا توفرها Intune افتراضياً
JSON Schemaمخطط JSONملف تعريف يحدد قواعد تقييم الامتثال بناءً على مخرجات سكربت الاكتشاف
Detection Logicمنطق الكشفالكود البرمجي داخل سكربت PowerShell الذي يحدد شروط النجاح أو الفشل لعملية فحص الامتثال
Hardware Inventoryجرد العتادجمع وتصنيف معلومات قطع العتاد في جميع الأجهزة المدارة لتحليلها ومراقبتها

1️⃣ Intune Configuration as Code — تهيئة Intune ككود برمجي

📖 إدارة تهيئة Intune ككود برمجي Configuration as Code تعني تخزين جميع سياساتك وتكويناتك وتعريفات تطبيقاتك في مستودع Git، ومراجعتها واعتمادها قبل نشرها — تماماً كما يفعل المطورون مع كود التطبيقات.
هذا النهج يحول إدارة Intune من "تعديلات يدوية غير موثقة" إلى "عملية هندسية منضبطة قابلة للتدقيق والتراجع".
📋 مكونات CI/CD لـ Intune:
  • مستودع Git: تخزين جميع ملفات التهيئة — سياسات JSON المصدرة من Intune، سكربتات PowerShell، قوالب ADMX، وتعريفات التطبيقات. كل تعديل يمر عبر Pull Request للمراجعة.
  • GitHub Actions / Azure DevOps: خطوط أنابيب آلية Pipelines تنفذ: (١) التحقق من صحة ملفات التهيئة قبل النشر، (٢) نشر السياسات إلى بيئة الاختبار، (٣) اختبار الامتثال التلقائي، (٤) نشر السياسات إلى بيئة الإنتاج بعد الاعتماد.
  • التحقق قبل النشر: قبل أن تصل أي سياسة لجهاز مستخدم حقيقي، تمر عبر فحوصات آلية: هل صيغة JSON سليمة؟ هل نطاق التعيين صحيح؟ هل توجد تعارضات مع سياسات موجودة؟
  • التراجع Rollback: إذا تسبب تغيير في مشكلة، يمكنك العودة للإصدار السابق من المستودع وإعادة نشره — بدلاً من محاولة تذكر ما غيرته يدوياً الأسبوع الماضي.
فريق IT في شركة تقنية يدير 5000 جهاز. سابقاً: أي مسؤول يعدل السياسات مباشرة في بوابة Intune. النتيجة: لا أحد يعرف من عدل ماذا ومتى ولماذا. بعد تطبيق Configuration as Code: كل تعديل يبدأ كـ Pull Request على GitHub مع وصف للتغيير والسبب. زميل آخر يراجع التعديل ويوافق عليه. خط أنابيب GitHub Actions يتحقق من صحة الملف وينشره لبيئة الاختبار (500 جهاز Pilot). بعد 48 ساعة من المراقبة دون مشاكل، يُنشر التعديل تلقائياً للإنتاج. كل شيء موثق، قابل للتدقيق، وقابل للتراجع الفوري.
🔑 نصيحة أساسية: ابدأ صغيراً مع CI/CD لـ Intune: لا تحاول نقل كل شيء للمستودع دفعة واحدة. اختر 3-5 سياسات حرجة (مثل سياسات الامتثال وجدار الحماية) وابدأ بها. تعلم الدروس من هذه المجموعة الصغيرة قبل توسيع النطاق.
خلاصة CI/CD لـ Intune:
  • إدارة تهيئة Intune ككود برمجي تجعل التعديلات موثقة وقابلة للمراجعة والتراجع.
  • GitHub Actions وAzure DevOps يؤتمتان دورة حياة السياسات من التعديل إلى النشر.
  • التحقق الآلي قبل النشر يمنع وصول السياسات الخاطئة لأجهزة المستخدمين.

📖 جدول المصطلحات

المصطلح (English)الترجمةالمفهوم
Configuration as Codeالتهيئة ككودتخزين وإدارة تهيئة Intune في مستودع Git مع المراجعة والاعتماد قبل النشر
CI/CD Pipelineخط أنابيب CI/CDسير عمل آلي للتحقق من تغييرات التهيئة ونشرها عبر بيئات متعددة
Pull Requestطلب سحبآلية في Git لطلب مراجعة واعتماد تغيير قبل دمجه في الفرع الرئيسي
GitHub Actionsإجراءات GitHubخدمة أتمتة من GitHub لتشغيل خطوط أنابيب CI/CD عند أحداث محددة
Azure DevOpsمنصة Azure DevOpsمنصة مايكروسوفت لإدارة المشاريع البرمجية وتشغيل خطوط أنابيب CI/CD
Rollbackالتراجعآلية للعودة إلى إصدار سابق من التهيئة في حالة فشل التغيير الجديد

🚀 الخاتمة

في هذه الوحدة فتحنا الباب على مصراعيه لعالم أتمتة إدارة الأجهزة. تعلمنا كيف يعمل Microsoft Graph API كالعمود الفقري البرمجي الذي يربط كل خدمات Microsoft 365، وكيف نستخدم Graph Explorer كمختبر آمن للتجربة قبل كتابة السكربتات. أتقنّا استخدام PowerShell وMicrosoft Graph PowerShell SDK لبناء سكربتات أتمتة حقيقية تنفذ العمليات الجماعية في دقائق بدلاً من أيام. ثم طبقنا كل ما تعلمناه في سيناريوهات واقعية: استيراد الأجهزة، تعيين التراخيص، إنشاء التقارير التلقائية، وجدولة السكربتات عبر Azure Automation. في الوحدة الأخيرة من هذه السلسلة، سنجمع كل الخيوط معاً في دليل شامل لاستكشاف الأخطاء وأفضل الممارسات — التتويج النهائي لرحلتك نحو احتراف Microsoft Intune.

تعليقات



حجم الخط
+
16
-
تباعد السطور
+
2
-