🎯 Microsoft Intune PowerShell Script Execution
عند إنشاء سكربت بورشيل أساسي (PowerShell Platform Script) داخل مايكروسوفت إنتون (Microsoft Intune) لمعالجة مشكلة تشغيلية على جهاز ما، يكون التوقع المنطقي أن يتم تنفيذ السكربت فورًا بعد تعيينه. لكن الواقع التقني مختلف تمامًا. تأخير تنفيذ سكربتات PowerShell في إنتون ليس عشوائيًا، ولا يرتبط بخلل في الخدمة، بل يعتمد على آليات داخلية محددة في امتداد إدارة إنتون (Intune Management Extension (IME)) تتحكم في متى وكيف يتم تقييم السياسات وتنفيذها. في هذا المقال سنشرح بدقة ما الذي يسبب التأخير، ولماذا لا يؤدي الضغط على زر المزامنة (Sync) إلى تشغيل السكربت فورًا.
1️⃣ What Happens When a PowerShell Script Is Deployed in Intune? — ماذا يحدث عند نشر سكربت بورشيل في إنتون؟
يُخزَّن السكربت في الخدمة السحابية لـ Intune، ثم ينتظر الجهاز محفزًا يطلق دورة تقييم جديدة داخل امتداد إدارة إنتون.
- يتم تسجيل السياسة في الخدمة السحابية لـ Intune.
- ينتظر الجهاز "محفزًا" (Trigger) يطلق دورة تقييم جديدة داخل IME.
- عند تحقق الشرط، يبني IME طلب السياسات (PolicyRequest) ويرسله إلى خدمة Intune.
- يستلم IME السياسات على شكل كائنات مثل كائن السياسة (EmsPolicy) ثم يصفّيها ويقرر تنفيذها وفق منطق الجدولة.
2️⃣ The Role of Intune Management Extension in Execution — دور امتداد إدارة إنتون في التنفيذ
يعمل كخدمة ويندوز (Windows Service) ضمن سياق النظام (System Context) أي بصلاحيات أعلى من صلاحيات المستخدم.
- انتهاء مؤقت التقييم (Timer Expiration).
- تغيّر جلسة المستخدم (Session Change).
- إعادة تشغيل الخدمة (Service Restart).
داخل منطق IME توجد دالة باسم OnSessionChange(SessionChangeDescription changeDescription) تستجيب لأحداث مثل تسجيل دخول الجلسة (SessionLogon) وتسجيل خروج الجلسة (SessionLogoff). وعند حدوث SessionLogon تحديدًا، قد يطلق IME مسار تقييم سكربتات PowerShell فورًا بدل انتظار المؤقت.
- نشر السكربت في إنتون لا يعني تنفيذًا فوريًا على الجهاز.
- IME هو الوكيل المحلي المسؤول عن تشغيل السكربتات والتطبيقات.
- النموذج موجّه بالأحداث ويعتمد على المؤقتات وإشعارات النظام.
- دالة OnSessionChange تستجيب لتسجيل الدخول والخروج مباشرة.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Microsoft Intune | مايكروسوفت إنتون | خدمة سحابية لإدارة الأجهزة والسياسات. |
| Intune Management Extension (IME) | امتداد إدارة إنتون | الوكيل المحلي الذي ينفذ السكربتات والتطبيقات. |
| PowerShell | بورشيل | لغة سكربتات مايكروسوفت لأتمتة المهام. |
| Event-Driven | موجّه بالأحداث | نموذج تنفيذ يعتمد على الأحداث والمؤقتات وليس الدفع الفوري. |
| PolicyRequest | طلب السياسات | طلب يرسله الجهاز لاستلام السياسات من السحابة. |
| EmsPolicy | كائن السياسة | كائن يمثل سياسة سكربت داخل نظام إنتون. |
| System Context | سياق النظام | تشغيل بصلاحيات النظام الكاملة دون حاجة لمستخدم. |
| Win32 Apps | تطبيقات ويندوز 32 | تطبيقات ويندوز التقليدية التي يديرها IME. |
1️⃣ Why Is Execution Tied to User Logon? — لماذا يرتبط التنفيذ بعملية تسجيل الدخول؟
عندما يكون الجهاز على شاشة تسجيل الدخول، لا توجد جلسة مستخدم نشطة ولا رمز مستخدم يمكن للسكربت الارتباط به.
- سكربتات سياق الجهاز (Device Context) يمكنها العمل في الخلفية لأنها تعمل بصلاحيات النظام.
- سكربتات سياق المستخدم تتطلب تسجيل دخول حقيقيًا للجلسة حتى يتوفر الرمز الأمني.
- عند تسجيل الدخول يرسل مدير التحكم في الخدمات (Service Control Manager) إشعارًا إلى IME بحدوث SessionLogon.
- عندها يبدأ IME دورة تقييم جديدة فورًا وقد يطلب السياسات وينفّذ السكربت.
2️⃣ Where Does the 8-Hour Timer Come From? — من أين يأتي مؤقت الـ 8 ساعات؟
هذه القيمة تمثل دورة التقييم الافتراضية لسكربتات PowerShell عندما تكون السياسات موجودة.
المهم أن تفهم أن هذا ليس استطلاعًا دوريًا (Polling)؛ أي أن IME لا "يفحص كل دقيقة"، بل "ينتظر" حتى تنتهي الدورة ثم يبدأ التقييم. وإذا تم تعيين سكربت جديد بين دورتين، فلن يعيد IME التقييم فورًا إلا إذا حدث محفز آخر مثل SessionLogon أو إعادة تشغيل الخدمة.
3️⃣ Does Restarting the IME Service Trigger Execution? — هل تؤدي إعادة تشغيل خدمة IME إلى التنفيذ؟
بدء الخدمة من جديد يعيد تهيئة أعباء العمل (Workloads) ويؤدي غالبًا إلى بدء دورة تقييم جديدة.
4️⃣ Do WNS Notifications Wake Up IME for Scripts? — هل توقظ إشعارات WNS خدمة IME؟
- المؤقت — انتهاء الدورة الزمنية.
- تغيّر الجلسة — Session Change.
- إعادة تشغيل الخدمة — Service Restart.
- تسجيل دخول المستخدم هو أقوى محفز لإطلاق دورة تقييم سكربتات سياق المستخدم.
- مؤقت الـ 8 ساعات هو دورة التقييم الافتراضية.
- إعادة تشغيل خدمة IME محفز صريح لكنه قد يتداخل مع عمليات أخرى.
- إشعارات WNS لا توقظ إضافة سكربتات PowerShell مباشرة.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| User Context | سياق المستخدم | تشغيل السكربت بهوية المستخدم المسجل دخوله. |
| Device Context | سياق الجهاز | تشغيل السكربت بصلاحيات النظام دون حاجة لمستخدم. |
| User Token | رمز المستخدم | هوية أمنية تسمح بتشغيل سكربتات سياق المستخدم. |
| SessionLogon | تسجيل دخول الجلسة | حدث نظام يطلق دورة تقييم جديدة في IME. |
| Service Control Manager | مدير التحكم في الخدمات | مكوّن ويندوز يرسل إشعارات تغيّر الجلسة. |
| PowerShell Script Plugin | إضافة سكربتات بورشيل | المكوّن الذي يحتوي مؤقت التقييم ومحرك التنفيذ. |
| Polling | استطلاع دوري | فحص متكرر لا يمارسه IME بل ينتظر المؤقتات. |
| WNS | خدمة إشعارات ويندوز | خدمة إشعارات لا تُعد محفزًا مباشرًا لسكربتات PowerShell. |
1️⃣ Why Doesn't the Sync Button Execute the Script? — لماذا لا يؤدي زر المزامنة إلى تنفيذ السكربت؟
بينما سكربتات PowerShell من نوع السكربتات الأساسية تعمل داخل امتداد إدارة إنتون، وهو مكوّن منفصل ومسار مروري منفصل تمامًا.
- زر المزامنة يعالج سياسات إدارة الأجهزة التقليدية.
- عبء عمل PowerShell داخل IME له دورة ومحفزات مختلفة.
- لذلك الضغط على زر المزامنة لا يستدعي عبء عمل PowerShell مباشرة ولا "يوقظ" إضافة السكربتات.
2️⃣ What Happens Inside the PowerShell Workload During Evaluation? — ما الذي يحدث داخل عبء عمل بورشيل أثناء التقييم؟
وتُدار عملية الجدولة عبر مدير جدولة مخصص يتحقق من التوقيت وإعادة المحاولة.
- بناء PolicyRequest وإرساله إلى خدمة إنتون.
- استلام السياسات ككائنات EmsPolicy.
- تمرير السياسات عبر دالة تصفية السياسات (FilterPolicies()) لتصفية ما ينطبق على السياق الحالي.
- تشغيل دالة معالجة السياسات (ProcessPolicies()) لاتخاذ قرار التنفيذ.
- قيام مدير الجدولة (Schedule Manager) بفحص تاريخ التنفيذ وإعادة المحاولة.
- هل السكربت يُنفَّذ لمرة واحدة (Run Once)؟
- هل تم تنفيذه سابقًا؟
- هل تجاوز عدد المحاولات (Retry Count)؟
- هل حان وقت التنفيذ الآن؟
3️⃣ Why Does the Portal Seem Instant While the Device Isn't? — لماذا تبدو البوابة فورية بينما الجهاز ليس كذلك؟
- من منظور السحابة: السياسة معيّنة ✔
- من منظور الجهاز: لم يبدأ IME دورة التقييم بعد ✖
هذا الفرق بين حالة السحابة (Cloud State) ودورة تقييم الجهاز (Device Evaluation Cycle) هو السبب الرئيسي في الالتباس، خصوصًا عند نشر سكربتات عاجلة تتوقع تنفيذًا فوريًا.
- زر المزامنة يتعامل مع مسار إدارة الأجهزة المنفصل عن مسار سكربتات PowerShell.
- التقييم يمر بخطوات منظمة تبدأ بالطلب وتنتهي بالجدولة.
- مدير الجدولة يتحقق من شروط التنفيذ مثل "لمرة واحدة" وإعادة المحاولة.
- حالة التعيين في البوابة لا تعني حدوث التنفيذ الفعلي على الجهاز.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Sync | المزامنة | زر يعالج سياسات إدارة الأجهزة التقليدية. |
| MDM Stack | طبقة إدارة الأجهزة المحمولة | المسار الذي تعمل عليه السياسات التقليدية. |
| OMA-DM Client | عميل بروتوكول OMA-DM | العميل الذي يتواصل مع طبقة إدارة الأجهزة. |
| FilterPolicies() | تصفية السياسات | دالة تختار السياسات المنطبقة على السياق الحالي. |
| ProcessPolicies() | معالجة السياسات | دالة تتخذ قرار التنفيذ بعد التصفية. |
| Schedule Manager | مدير الجدولة | مكوّن يتحقق من التوقيت وعدد المحاولات. |
| Run Once | تنفيذ لمرة واحدة | سكربت يُنفَّذ مرة واحدة فقط. |
| Cloud State | حالة السحابة | حالة التعيين في البوابة دون تنفيذ فعلي. |
1️⃣ What Is the Practical Takeaway When Deploying a New Script? — ما الخلاصة العملية عند نشر سكربت جديد؟
فهم هذه المحفزات يجعل سلوك التنفيذ متوقعًا وقابلًا للتخطيط.
- تسجيل دخول المستخدم — SessionLogon.
- إعادة تشغيل الجهاز — قد تتضمن إعادة تشغيل IME.
- إعادة تشغيل خدمة IME — Service Restart.
- انتهاء دورة الـ 8 ساعات — 8-Hour Timer.
- التنفيذ شبه الفوري يتحقق عبر تسجيل الدخول أو إعادة تشغيل خدمة IME.
- بدون محفز، قد ينتظر الجهاز حتى دورة الـ 8 ساعات.
- زر المزامنة لا يشغّل عبء عمل سكربتات PowerShell.
- افهم الفرق بين حالة السحابة ودورة تقييم الجهاز لقراءة البوابة بشكل صحيح.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| SessionLogon | تسجيل دخول الجلسة | أقوى محفز لإطلاق دورة تقييم السكربتات. |
| 8-Hour Timer | مؤقت 8 ساعات | دورة التقييم الافتراضية لسكربتات PowerShell. |
| Service Restart | إعادة تشغيل الخدمة | محفز يعيد تهيئة أعباء العمل داخل IME. |
| Event-Driven | موجّه بالأحداث | نموذج يعتمد على الأحداث والمؤقتات بدل الدفع الفوري. |
| Remote Support | الدعم عن بُعد | سيناريو تُدار فيه المحفزات يدويًا للوصول لتنفيذ أسرع. |
| Logoff/Logon | تسجيل الخروج والدخول | أسلوب عملي لإجبار IME على إعادة التقييم فورًا. |
🚀 الخاتمة
تأخير تنفيذ سكربت PowerShell في إنتون ليس خطأً في النظام، بل نتيجة طبيعية لتصميم امتداد إدارة إنتون (IME) القائم على الأحداث والمؤقتات. زر المزامنة (Sync) لا يشغّل عبء عمل PowerShell لأن مسار إدارة الأجهزة منفصل تمامًا، بينما يُعد تسجيل دخول الجلسة (SessionLogon) من أقوى المحفزات التي تُجبر IME على إعادة التقييم. فهم هذه الآلية يمنحك قدرة أفضل على التخطيط للنشر وإدارة التوقعات وتفسير السلوك بدقة تقنية عالية.
