🎯 Automation with PowerShell & Microsoft Graph — الأتمتة عبر PowerShell و Microsoft Graph
مرحباً بك في الوحدة السابعة عشرة — بوابة الدخول إلى عالم أتمتة إدارة الأجهزة باحترافية. في هذه الوحدة ستتعلم كيف تتحول من مسؤول يُنفّذ المهام يدوياً إلى مهندس أتمتة يبني أنظمة تُدير نفسها بنفسها. سنبدأ بفهم Microsoft Graph API، العمود الفقري البرمجي الذي يربط كل خدمات Microsoft 365 ببعضها، ونتعلم كيف نستخدم Graph Explorer لاستكشاف الإمكانيات. ثم ننتقل إلى PowerShell، الأداة الأقوى في ترسانة مسؤول Intune، حيث سنكتب سكربتات حقيقية لأتمتة المهام اليومية والعمليات الجماعية. وفي الختام سنطبق ما تعلمناه في سيناريوهات أتمتة واقعية تشمل استيراد الأجهزة وتعيين التراخيص وإنشاء التقارير التلقائية وجدولة السكربتات. هذه الوحدة هي التي تصنع الفارق بين مسؤول عادي ومسؤول استثنائي!
1️⃣ What is Microsoft Graph — ما هو Microsoft Graph
بدلاً من تعلم عدة واجهات برمجية مختلفة لكل خدمة، تتعلم Graph مرة واحدة وتصل إلى كل شيء — المستخدمين والأجهزة والتطبيقات والبريد الإلكتروني والملفات والتقارير.
- المستخدمون والمجموعات Users & Groups: إنشاء وتعديل وحذف المستخدمين، إدارة عضويات المجموعات، استعراض خصائص الحسابات، وإدارة كلمات المرور والتراخيص برمجياً.
- الأجهزة Devices: استعراض الأجهزة المسجلة في Intune، تنفيذ إجراءات عن بُعد مثل المسح أو إعادة التشغيل، وجلب تقارير الامتثال والتكوين.
- التطبيقات Applications: نشر التطبيقات وإدارتها، مراقبة حالة التثبيت، إدارة سياسات حماية التطبيقات وسياسات التكوين.
- الأمان Security: الوصول لبيانات Microsoft Defender والتهديدات والثغرات الأمنية، وإدارة سياسات الأمان وConditional Access.
- التقارير Reports: استخراج تقارير استخدام الخدمات والامتثال والتدقيق برمجياً لبناء لوحات معلومات مخصصة وأنظمة تنبيه.
2️⃣ Graph Explorer — مستكشف Graph
هذه الأداة هي أفضل صديق للمطور ومسؤول Intune في بداية رحلة التعلم — تمنحك بيئة آمنة للتجربة والخطأ قبل كتابة السكربتات الحقيقية.
- تسجيل الدخول: افتح 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 لاستكشاف أمثلة جاهزة.
3️⃣ Permissions: Delegated vs Application — الصلاحيات: المفوضة مقابل التطبيق
اختيار النوع المناسب من الصلاحيات هو قرار أمني بالغ الأهمية — الخطأ فيه قد يفتح ثغرات أمنية خطيرة.
- الصلاحيات المفوضة Delegated Permissions: تعمل بوجود مستخدم مسجل دخوله، وتقتصر على ما يستطيع هذا المستخدم فعله أصلاً — تستخدم في التطبيقات التي يتفاعل معها المستخدم مباشرة مثل تطبيقات الويب وسطح المكتب.
- صلاحيات التطبيق Application Permissions: تعمل بدون وجود مستخدم، وتحتاج لموافقة المسؤول العام Admin Consent مرة واحدة — تستخدم في الخدمات الخلفية وسكربتات الأتمتة المجدولة التي تعمل في أوقات لا يوجد فيها بشر.
- الموافقة الإدارية Admin Consent: بعض الصلاحيات الحساسة (مثل قراءة كل بيانات المستخدمين أو إدارة الأجهزة) تحتاج لموافقة صريحة من مسؤول عام قبل أن يتمكن أي تطبيق من استخدامها.
- نطاق الصلاحية Scope: يمكنك تحديد نطاق الصلاحية بدقة — مثلاً User.Read لقراءة بيانات المستخدم الحالي فقط، أو User.Read.All لقراءة بيانات جميع المستخدمين.
4️⃣ Common Graph Endpoints — نقاط النهاية الشائعة
حفظ نقاط النهاية الشائعة يسرّع عملك بشكل هائل — بدلاً من البحث في الوثائق كل مرة، تستدعي النقطة التي حفظتها مباشرة.
- الأجهزة المدارة: GET /deviceManagement/managedDevices — يعرض كل الأجهزة المسجلة في Intune مع خصائصها الكاملة (الاسم، نظام التشغيل، حالة الامتثال، آخر اتصال).
- سياسات التكوين: GET /deviceManagement/deviceConfigurations — يعرض كل سياسات التكوين المطبقة على الأجهزة مع تفاصيل الإعدادات.
- تطبيقات الهاتف المحمول: GET /deviceAppManagement/mobileApps — يعرض كل التطبيقات المنشورة عبر Intune مع حالة التثبيت لكل منها.
- الإجراءات عن بُعد: POST /deviceManagement/managedDevices/{id}/rebootNow — إعادة تشغيل جهاز محدد عن بُعد.
- المستخدمون: GET /users — استعراض كل المستخدمين في Entra ID مع إمكانية التصفية والفرز والبحث.
- 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
بدلاً من كتابة طلبات HTTP معقدة مع توكنات المصادقة ورؤوس الطلبات، تكتب أوامر PowerShell بسيطة وواضحة يقوم الـ SDK بترجمتها تلقائياً إلى طلبات Graph.
- أتمتة المهام المتكررة: كل مهمة تفعلها يومياً عبر البوابة (التحقق من الامتثال، تعيين ترخيص، تحديث مجموعة) يمكن تحويلها إلى أمر PowerShell واحد ينفذ في ثوانٍ.
- الإدارة الجماعية Bulk Operations: تطبيق تغيير على 5000 جهاز أو مستخدم في دقائق بدلاً من النقر 5000 مرة في البوابة — الفرق بين ساعة وأسبوع من العمل.
- التقارير المخصصة: جمع بيانات من عدة مصادر (Intune + Entra ID + Exchange) في تقرير واحد مخصص يلبي احتياجات مؤسستك تحديداً.
- التكامل مع أنظمة أخرى: ربط Intune مع نظام الموارد البشرية أو نظام إدارة خدمات تقنية المعلومات ITSM أو أي نظام آلي في مؤسستك.
2️⃣ Common Scripts and Automation — السكربتات والأتمتة الشائعة
احفظ هذه الأنماط جيداً لأنها ستوفر عليك ساعات لا تحصى من العمل اليدوي.
- جلب الأجهزة غير الممتثلة: سكربت بسيط يستخدم Get-MgDeviceManagementManagedDevice مع فلتر complianceState لاستخراج قائمة بكل الأجهزة غير الممتثلة وإرسالها بالبريد الإلكتروني لمديري الأقسام.
- تعيين التراخيص الجماعي: سكربت يقرأ قائمة مستخدمين من ملف CSV ويستخدم Set-MgUserLicense لتعيين تراخيص Microsoft 365 لمئات الموظفين الجدد دفعة واحدة.
- تصدير مخزون الأجهزة: سكربت يستعرض كل الأجهزة المسجلة ويصدر معلوماتها (الاسم، الطراز، نظام التشغيل، آخر اتصال، حالة الامتثال) إلى ملف Excel للتدقيق والمتابعة.
- تحديث المجموعات الديناميكي: سكربت يضيف أو يزيل الأجهزة من المجموعات بناءً على معايير محددة (مثل: جميع أجهزة Windows 10 التي لم تحدث إلى Windows 11).
- مراقبة صحة الخدمة: سكربت يستخدم Invoke-MgGraphRequest لفحص حالة التسجيل والتطبيقات والتحديثات يومياً وإرسال تنبيه عند اكتشاف مشكلة.
3️⃣ Bulk Operations — العمليات الجماعية
هذه هي القوة الحقيقية لـ PowerShell: ما يستغرق أياماً في البوابة يُنفذ في دقائق بسكربت واحد.
- المعالجة المتوازية Parallel Processing: باستخدام ForEach-Object -Parallel في PowerShell 7، يمكنك تنفيذ العمليات على عدة أجهزة في وقت واحد بدلاً من التسلسل — مضاعفة السرعة عدة مرات.
- معالجة الدفعات Batching: تقسيم 10000 عنصر إلى دفعات كل منها 500 عنصر وإرسالها كطلبات مجمعة — تقليل عدد الاتصالات بالخادم وتسريع التنفيذ.
- معالجة الأخطاء: إضافة معالجة للأخطاء Error Handling عبر try/catch لحصر العناصر الفاشلة وإعادة محاولتها تلقائياً دون التأثير على باقي الدفعة.
- التسجيل والمراقبة: كتابة سجل تفصيلي Log لكل عملية جماعية يوثق وقت البدء والانتهاء وعدد النجاح والفشل وأسباب الفشل — ضروري لعمليات التدقيق.
4️⃣ Authentication Methods — طرق المصادقة
اختيار طريقة المصادقة الخاطئة هو السبب الأول لفشل سكربتات الأتمتة عند جدولتها.
- المصادقة التفاعلية Interactive Authentication: تفتح نافذة متصفح لتسجيل الدخول — تستخدم عند تشغيل السكربت يدوياً، وتدعم MFA وConditional Access بشكل طبيعي.
- المصادقة بالشهادة Certificate-based Authentication: تستخدم شهادة رقمية مخزنة على الخادم بدلاً من كلمة مرور — مثالية للسكربتات المجدولة التي تعمل بدون تدخل بشري، والأكثر أماناً.
- المصادقة بالسر Client Secret: تستخدم كلمة سر تُنشأ من تسجيل التطبيق في Entra ID — بسيطة لكن أقل أماناً من الشهادة ويجب تدويرها دورياً.
- الهوية المدارة Managed Identity: تستخدم في بيئة Azure فقط (مثل Azure Automation أو Azure Functions) — لا تحتاج أي أسرار أو شهادات، الأكثر أماناً على الإطلاق.
- 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 — أتمتة استيراد الأجهزة
هذه السيناريو مثالي لمشاريع الترحيل الكبيرة من أنظمة قديمة أو عند نشر أجهزة جديدة على نطاق واسع.
- تجهيز ملف المصدر: جهز ملف CSV يحتوي على بيانات الأجهزة: الرقم التسلسلي Serial Number، وطراز الجهاز، واسم المستخدم المسؤول، والقسم التابع له.
- استيراد عبر Windows Autopilot: استخدم أمر Import-AutopilotCSV لرفع ملف CSV مباشرة إلى خدمة Autopilot وتسجيل مئات الأجهزة دفعة واحدة.
- تعيين ملفات التكوين: بعد الاستيراد، عيّن ملف Autopilot Deployment Profile المناسب لكل مجموعة أجهزة تلقائياً عبر Group Tag.
- إنشاء تقرير التحقق: سكربت يتحقق من نجاح استيراد كل جهاز ويصدر تقريراً بالأجهزة الناجحة والفاشلة مع أسباب الفشل.
2️⃣ License Assignment Automation — أتمتة تعيين التراخيص
هذا السيناريو لا يوفر الوقت فقط — بل يمنع الأخطاء المكلفة مثل نسيان تعيين ترخيص لموظف جديد أو ترك ترخيص لموظف غادر المؤسسة.
- الربط مع نظام HR: استخراج قائمة الموظفين الجدد والمستقيلين من نظام الموارد البشرية بشكل دوري (يومي أو أسبوعي) ومزامنتها تلقائياً.
- الترخيص بناءً على القسم: كل قسم له حزمة تراخيص افتراضية — المحاسبة تحصل على Microsoft 365 E3، قسم تقنية المعلومات يحصل على Microsoft 365 E5، وهكذا.
- الترخيص الجماعي: استخدام Set-MgUserLicense داخل حلقة لتعيين نفس الترخيص لمجموعة من المستخدمين دفعة واحدة.
- إلغاء التراخيص تلقائياً: عند مغادرة موظف، السكربت يُلغي تراخيصه تلقائياً لتحريرها وإعادة استخدامها — توفير تكاليف التراخيص غير المستخدمة.
3️⃣ Compliance Report Automation — أتمتة تقارير الامتثال
هذا السيناريو يحول التقارير من "عبء أسبوعي" إلى "معلومة تصل إليك وأنت تتناول قهوتك الصباحية".
- استخراج البيانات: استخدام Get-MgDeviceManagementManagedDevice لاستعراض جميع الأجهزة مع فلترة حسب حالة الامتثال — ممتثل، غير ممتثل، في فترة سماح.
- تحليل البيانات: تجميع النتائج وحساب النسب المئوية — 94% ممتثلة، 4% غير ممتثلة، 2% في فترة سماح — مع تحديد الأجهزة ذات المخاطر العالية.
- إنشاء التقرير: تصدير النتائج إلى ملف Excel منسق أو HTML للبريد الإلكتروني مع رسوم بيانية ونسب ومقارنات مع الأسابيع السابقة.
- الإرسال التلقائي: إرسال التقرير بالبريد الإلكتروني عبر Send-MgUserMail إلى قائمة المديرين المحددين مسبقاً كل يوم اثنين الساعة 8 صباحاً.
4️⃣ Scheduled Scripts with Azure Automation — جدولة السكربتات عبر Azure Automation
هذه الخدمة تحول سكربتاتك اليدوية إلى "روبوتات رقمية" تعمل في الخلفية 24 ساعة طوال أيام الأسبوع.
- حسابات الأتمتة Automation Accounts: الحاوية الأساسية التي تضم كل موارد الأتمتة — السكربتات والجداول والشهادات والمتغيرات.
- سجلات التشغيل Runbooks: سكربتات PowerShell أو Python المخزنة في حساب الأتمتة والقابلة للتنفيذ يدوياً أو آلياً حسب جدول.
- الجداول Schedules: تحديد متى وكم مرة ينفذ السكربت — يومياً عند الساعة 2 فجراً، أو كل أول شهر، أو كل 6 ساعات.
- الأصول المشتركة Shared Resources: تخزين آمن للشهادات والمتغيرات والاتصالات ووحدات PowerShell المستخدمة في السكربتات.
- أتمتة استيراد الأجهزة عبر 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
هذه التقنية تحول استكشاف الأخطاء والتحقيق الأمني من "ساعات من البحث اليدوي" إلى "ثوانٍ من التحليل الآلي".
- التحقيق في التهديدات: عند اكتشاف تهديد على جهاز، يسأل المسؤول: "ما مدى انتشار هذا التهديد؟" فيحلل Copilot بيانات Defender for Endpoint وIntune ليعرض: عدد الأجهزة المصابة، مسار انتشار التهديد، الثغرات المستغلة، وخطوات الاستجابة الموصى بها.
- تحليل أداء الأجهزة: استفسارات مثل "لماذا جهاز المستخدم X بطيء؟" تجعل Copilot يحلل بيانات Endpoint Analytics وتقارير الأعطال وسياسات التكوين ليقترح السبب: تطبيق معين يسبب أعطالاً، سياسة تقييدية جداً، أو تحديث معلق يستهلك الموارد.
- توصيات الوكلاء Agent Recommendations: Copilot لا يكتفي بالتحليل — بل يقترح إجراءات قابلة للتنفيذ. مثلاً: "أقترح استبعاد الجهاز من سياسة التحديث الحالية وتطبيق سياسة تخفيف مؤقتة" — ويوفر زراً واحداً لتطبيق الاقتراح فوراً.
- استفسارات اللغة الطبيعية: بدلاً من كتابة استعلام KQL معقد لتصدير الأجهزة غير الممتثلة، تكتب ببساطة: "اعرض لي كل أجهزة ويندوز التي فشلت في سياسة BitLocker هذا الأسبوع" — ويولد Copilot التقرير ويعرضه.
- وكلاء Intune Agents: وكلاء متخصصون يراقبون بيئتك باستمرار: وكيل الامتثال (يرصد تغيرات حالة الأجهزة)، وكيل التطبيقات (يكتشف فشل النشر)، وكيل الأمان (يتكامل مع Defender ليكتشف التهديدات مبكراً).
- 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 — سياسات الامتثال المخصصة
هذه أقوى أداة لفرض معايير مؤسسية فريدة لا تغطيها السياسات الجاهزة: "هل تطبيق المحاسبة مثبت؟" "هل إصدار Java أقل من 8؟" "هل خدمة معينة شغالة؟"
- سكربت الاكتشاف Discovery Script: سكربت PowerShell يُشغل على الجهاز ويُخرج بيانات بصيغة JSON محددة. يُستخدم لاكتشاف معلومات لا توفرها Intune افتراضياً — مثل إصدار برنامج محاسبة، مفتاح تسجيل معين، أو حالة خدمة مخصصة.
- مخطط JSON للامتثال: ملف JSON يُعرّف قواعد التقييم: أي قيمة من سكربت الاكتشاف تعني "ممتثل" وأيها تعني "غير ممتثل".
- الدمج مع Conditional Access: نتيجة الامتثال المخصص تتكامل مع Conditional Access تماماً مثل الامتثال الجاهز — إذا كان الجهاز غير ممتثل، يُمنع من الوصول لتطبيقات المؤسسة.
- جرد العتاد والبرمجيات: سكربتات الاكتشاف تُستخدم ليس فقط للامتثال، بل أيضاً لبناء جرد دقيق: كل إصدارات البرامج المثبتة، كل قطع العتاد، إعدادات BIOS.
- سكربتات 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 من "تعديلات يدوية غير موثقة" إلى "عملية هندسية منضبطة قابلة للتدقيق والتراجع".
- مستودع Git: تخزين جميع ملفات التهيئة — سياسات JSON المصدرة من Intune، سكربتات PowerShell، قوالب ADMX، وتعريفات التطبيقات. كل تعديل يمر عبر Pull Request للمراجعة.
- GitHub Actions / Azure DevOps: خطوط أنابيب آلية Pipelines تنفذ: (١) التحقق من صحة ملفات التهيئة قبل النشر، (٢) نشر السياسات إلى بيئة الاختبار، (٣) اختبار الامتثال التلقائي، (٤) نشر السياسات إلى بيئة الإنتاج بعد الاعتماد.
- التحقق قبل النشر: قبل أن تصل أي سياسة لجهاز مستخدم حقيقي، تمر عبر فحوصات آلية: هل صيغة JSON سليمة؟ هل نطاق التعيين صحيح؟ هل توجد تعارضات مع سياسات موجودة؟
- التراجع Rollback: إذا تسبب تغيير في مشكلة، يمكنك العودة للإصدار السابق من المستودع وإعادة نشره — بدلاً من محاولة تذكر ما غيرته يدوياً الأسبوع الماضي.
- إدارة تهيئة 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.
