المجتمع Active Directory

RSAT وActiveDirectory Module: حل مشكلة Get-ADUser غير معروف بدون تخبيص في اللاب

تفتح PowerShell، تنسخ Get-ADUser من شرح، ويطلع لك أن الأمر غير معروف. قبل ما تفكر في حساب الدومين أو الجدار الناري، وقف عند الرسالة نفسها: الجلسة ما عرفت الأمر أصلًا. هذه مشكلة مختلفة عن أمر معروف وصل للخادم ثم رجع بخطأ.
RSAT اسم مجموعة أدوات إدارة من Microsoft، ومنها أدوات Active Directory. وجود ويندوز عندك ما يعني أن كل أدوات الإدارة موجودة، ووجود الأداة ما يمنح حسابك صلاحيات جديدة. بنرتب هنا طريقة فحص جاهزية جهاز اللاب، ونفرق بين مكون ناقص وجلسة مختلفة واتصال لا ينجح. المقال ما يفترض أنك مدير دومين، ولا يحتاج تعديل سياسة أمان لمجرد تشغيل مثال قراءة.

ارسم ثلاث مراحل بدل جمع كل الأخطاء في سبب واحد

قسم المشكلة إلى ثلاث مراحل: هل الجلسة تعرف الأمر؟ هل يمكن للأمر الوصول إلى خدمة الدليل المقصودة؟ هل حسابك قادر على تنفيذ الطلب المحدد؟ هذه ليست قائمة تحفظها بدون تفكير؛ هي طريقة تمنعك تبحث في طبقة ما وصل إليها التنفيذ حتى الآن.
إذا ظهر أن Get-ADUser غير معروف، فحاول إثبات وجود مكونه في جهازك. إذا كان معروفًا وظهر خطأ اتصال، انتقل إلى الوجهة والمسار. وإذا حصلت استجابة ترفض طلبًا بعينه، اقرأ سياق الهوية والصلاحيات والطلب. قد توجد أكثر من مشكلة، لكن حلها بالتتابع أسهل من تغيير كل شيء مرة واحدة.
خلنا نفترض أن زميلين يستخدمان الحساب التدريبي نفسه. الأمر يعمل عند الأول ولا يُعرف عند الثاني. هذا لا يثبت أن الحساب مختلف الصلاحية؛ الفرق الأول ظاهر في جهاز التنفيذ أو جلسته. اكتب مقارنة قصيرة لبيئة الاثنين بدل إعادة تعيين كلمة المرور أو طلب حساب أقوى.
في اللاب، هذا التصنيف يوفر وقتًا ويعلمك لغة مفيدة في التقرير. تقول إن الجهاز الثاني لا يجد الأمر في جلسة محددة، بدل أن تقول إن Active Directory يمنعني. الجملة الدقيقة تعطي الشخص اللي يساعدك معلومة قابلة للتحقق، وتقلل عدد الأسئلة التي يحتاج يسألك إياها قبل أن يبدأ التشخيص.

وش علاقة RSAT بوحدة ActiveDirectory؟

RSAT تشمل أدوات إدارة بأشكال مختلفة، من وحدات PowerShell إلى واجهات إدارة. أدوات AD DS وAD LDS ضمن المكونات المتاحة بحسب منصة ويندوز. طريقة الإضافة تختلف بين جهاز Windows Client وWindows Server، فلا تنقل اسم ميزة أو طريقة تثبيت من شرح خادم إلى جهازك بدون مراجعة المنصة.
على الجهاز العميل، توثق Microsoft دعم RSAT في إصدارات Pro وEnterprise المحددة في صفحة المتطلبات. راجع الوثائق الحالية المناسبة لنسخة نظامك، بدل الاعتماد على أن شكل سطح المكتب يشبه جهاز الشارح. إذا لم تكن منصتك مدعومة للمكون، تكرار الأمر نفسه ما يحل هذا الاختلاف.
الأداة ليست حسابًا، والمكون ليس تصريحًا. تثبيت أدوات الإدارة يعني أن عندك برنامجًا يستطيع إرسال طلبات عندما تكون الظروف مناسبة؛ ما يعني أن كل طلب سيُقبل. حساب اللاب يبقى بنفس الصلاحيات، وعمليات القراءة والتعديل لا تتساوى لمجرد أن الأوامر موجودة في الوحدة نفسها.
قبل اختيار جهاز إدارة للاب، اسأل: هل نحتاج واجهة رسومية، أم أمر قراءة واحدًا، أم الاثنين؟ هذا القرار يحدد المكون المطلوب ويمنع تنزيل حزم كثيرة لمجرد أنها مرتبطة بالدومين. اعتمد مصدر Microsoft الرسمي، ولا تستبدل المكون الرسمي بملف عشوائي يحمل اسمًا مشابهًا لأن نتيجة بحث وعدتك بإصلاح سريع.

تعرف على جلسة PowerShell اللي أنت داخلها

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

افحص وجود الوحدة قبل تحميل ملفات جديدة

في جهاز ويندوز الخاص باللاب، استخدم قراءة المكونات المتاحة:
Get-Module -ListAvailable -Name ActiveDirectory | Select-Object Name,Version,Path
الخيار ListAvailable يبحث عن الوحدات المتاحة، بينما Get-Module بدون هذا الخيار يعرض الوحدات المحملة في الجلسة. هذا الفرق مهم: عدم ظهور وحدة ضمن المحمل حاليًا لا يساوي تلقائيًا أنها غير موجودة على الجهاز.
إذا رجع اسم الوحدة ومسارها، احتفظ بالنتيجة للمقارنة مع جلسة أخرى. إذا لم يرجع شيء، راجع المكون الرسمي والمنصة بدل استنتاج أن خدمة الدومين متوقفة. هذا الفحص يخص ما تستطيع الجلسة اكتشافه من وحدات، ولا يتطلب أنك نجحت في قراءة مستخدم من الخادم.
المسار معلومة تساعدك تلاحظ أن جلسة تستخدم وحدة من مكان مختلف عن المتوقع. لا تنقل مجلدات الوحدة يدويًا من أجهزة أخرى كأول علاج، ولا تملأ مسارات البحث بملفات مجهولة. أنت تحاول إثبات سبب الاختلاف، وأي تدخل يدوي غير موثق قد يضيف مشكلة توافق أو مصدرًا ما تعرفه.
قارن النتيجة مع جهاز لاب يعمل بنفس المتطلبات إذا كان عندك واحد. لا يكفي أن يقول زميلك عندي شغالة؛ اطلب وصفًا للمكون والجلسة بشكل لا يتضمن أسرارًا. إذا كان الفرق واضحًا في وجود الوحدة، صار عندك اتجاه للإصلاح. وإذا كان الاثنان يجدانها، تحتاج فحصًا أقرب لتعريف الأمر أو تحميل الوحدة في السياق الفعلي.

هل Get-ADUser موجود، ومن أي وحدة جاء؟

بعد فحص الوحدات المتاحة، افحص تعريف الأمر في الجلسة:
Get-Command -Name Get-ADUser -All | Select-Object Name,CommandType,Source,Version
النتيجة تساعدك تحدد مصدر الأمر وتعريفه المتاح، بدل الحكم من أن الاسم الذي كتبته لم يعد يعطي الخطأ القديم. خيار All يفيد عندما توجد تعريفات متعددة بالاسم نفسه. راجع المصدر المتوقع ولا تفترض أن تشابه الاسم يعني تطابق الوظيفة.
طلب تعريف اسم محدد قد يؤدي إلى التحميل التلقائي للوحدة بحسب إعداد الجلسة، ولذلك وصفه بأنه مجرد فحص لا يحرك أي شيء داخل الجلسة وصف غير دقيق. لكنه مختلف عن تنفيذ Get-ADUser لقراءة الدليل. اقرأ الفرق بين اكتشاف تعريف الأمر وبين تشغيل طلبه على الخادم.
إذا ظهر الأمر من الوحدة الرسمية المتوقعة، سجّل أنك تجاوزت مرحلة الأمر غير المعروف. لا تزال المرحلة التالية مستقلة. ممكن يفشل اتصال الخدمة أو يفشل الطلب، لكن لا ترجع تلقائيًا إلى تنزيل RSAT من جديد كلما تغيرت رسالة الخطأ. تغير الرسالة غالبًا يخبرك أن التنفيذ وصل إلى موضع جديد.
لو ظهر تعريف غير متوقع، مثل وظيفة من ملف تدريب سابق، توقف عن خلط المثال الرسمي معها. راجع كيف أضيفت إلى الجلسة ومصدر الملف. ما نحتاج نقول إن أي تعريف إضافي خبيث، لكن نحتاج نتأكد أننا نختبر الأداة المقصودة. وإلا تصبح المقارنة مع الوثائق الرسمية مضللة مهما كانت الأوامر مكتوبة بشكل صحيح.

قراءة حالة المكون على Windows Client

لجهاز Windows Client المدعوم في لابك، توثق Microsoft استخدام Get-WindowsCapability لفحص حالة المكونات. في جلسة مناسبة وبالصلاحية المحلية المطلوبة لقراءة حالة النظام، يمكن فحص المكون المحدد:
Get-WindowsCapability -Online -Name 'Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0'
تعامل مع اسم المكون هنا كاسم رسمي لفحص حالة هذه الحزمة، وليس رقم إصدار الوحدة الذي ظهر في Get-Module. هذان سياقان مختلفان، وخلطهما يجعل ملاحظاتك تبدو متناقضة بدون سبب. راجع الاسم المدعوم لمنصتك في الوثائق إذا تغيرت متطلبات النظام.
إذا كانت الحالة NotPresent، فهذا يساعدك تثبت أن الحزمة غير مضافة في هذه القراءة. إذا كانت Installed لكن الجلسة ما تجد الأمر، فصار عندك اختلاف بين حالة المكون واكتشاف الجلسة يحتاج مراجعة. لا تستنتج من الحالتين أن حساب الدومين ضعيف أو أن الدليل رفض الاستعلام، لأنك لم تختبر الطلب بعد.
إضافة المكون خطوة تغيير على الجهاز، مختلفة عن فحص حالته. في لاب تملكه يمكنك استخدام طريقة Microsoft الرسمية المناسبة، وفي جهاز عمل اتبع قناة إدارة البرامج المعتمدة. لا تحاول تجاوز سياسة توفير المكونات أو تعطيل حماية الجهاز لأن تنزيل الحزمة تعثر. إذا كان هناك منع إداري، ارفع وصفًا واضحًا للمكون المطلوب وسبب الحاجة له، بدل اختراع مصدر تحميل بديل.

سيناريو: Installed موجودة، لكن الأمر غير معروف

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

بعد معرفة الأمر، جرّب قراءة صغيرة معروفة

إذا تأكدت أن الأمر متاح، انتقل إلى تجربة قراءة محددة في دومين لابك وبحساب مصرح. اختر كائنًا تدريبيًا تعرف أنه موجود، وحدد الخادم المقصود بدل أن تترك المقارنة غامضة. مثال على قراءة مستخدم واحد ثم عرض ثلاث خصائص:
Get-ADUser -Identity 'lab.student' -Server 'dc01.lab.test' | Select-Object Name,SamAccountName,Enabled
الاسم والخادم هنا أمثلة للاب وليست بيانات حساب حقيقي. استخدام Identity يحصر الطلب في كائن محدد، وSelect-Object يحدد ما تعرضه في المخرجات. هذا الاختبار ما يغير حالة المستخدم، وما يقيس كل صلاحيات الحساب على بقية الكائنات.
إذا لم يُعثر على المستخدم، راجع وجوده وهويته والخادم الذي سألته. لا تعالج ذلك بإضافة صلاحيات إدارية للحساب، لأن رسالة عدم العثور تحتاج قراءة سياقها أولًا. وإذا ظهر خطأ اتصال، صار عندك دليل أن الأمر معروف لكن مرحلة لاحقة تعثرت. افصل هذا في ملاحظاتك عن مشكلة المكون الأصلية.
نجاح القراءة يعني أن هذه التجربة المحددة نجحت في ذلك السياق. لا تصفه بأنه صلاحية كاملة على الدومين أو نجاح كل أدوات RSAT. تقدر بعدها تختار تجربة أخرى تناسب هدفك، مثل قراءة مجموعة تدريبية، لكن حافظ على التدرج. الاختبار الصغير اللي تعرف نتيجته المتوقعة أفضل من استعلام واسع ما تعرف هل نقصت مخرجاته أو رجعت كاملة.

الأخطاء اللي تطول التشخيص بدون فائدة

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

جهّز ورقة تشخيص تختصر عليك المحاولة القادمة

اكتب ورقة قصيرة خاصة بلابك تتضمن جهاز التنفيذ، والمنصة، ونسخة الجلسة، وحالة مكون RSAT، والوحدة المتاحة، ومصدر Get-ADUser، ثم نتيجة قراءة مستخدم تدريبي واحد. بجانب كل عنصر اكتب كيف تحققت منه. بهذه الطريقة يصبح عندك خط أساس تقارن معه بعد تحديث أو نقل اللاب إلى جهاز جديد.
المهم أن الورقة تخدم سؤالًا فعليًا، وليست قائمة تجمعها ثم تنساها. إذا كانت الوحدة غير متاحة، لا تكمل وتشغل عشرات الاستعلامات. وإذا كانت القراءة نجحت، لا تحول الفحص إلى جرد شامل بلا هدف. توقف عند الدليل المناسب لمرحلة التجهيز، ثم ابدأ تجربة التعلم المقصودة بحدودها الخاصة.
ممكن تستعمل هذا الترتيب في تدريب زميل: اعطه رسالة خطأ واحدة، واطلب منه يحدد أي مرحلة وصلت إليها المحاولة وأي معلومة ناقصة. الإجابة الجيدة ما تكون أمرًا طويلًا يصلح كل شيء؛ تكون سؤالًا يختبر سببًا واضحًا. هنا يبدأ الفرق بين تشغيل مثال من دورة وبين فهم البيئة اللي ينفذ فيها.
للمراجعة، هذه الصفحات الرسمية تشرح المكونات والأوامر المستخدمة:
https://learn.microsoft.com/en-us/windows-server/administration/install-remote-server-administration-tools
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/get-module
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/get-command
https://learn.microsoft.com/en-us/powershell/module/activedirectory/get-aduser
إذا تذكرت أن وجود الأداة والوصول للخادم وقبول الطلب ثلاث مسائل مستقلة، بتصير رسالة Get-ADUser غير معروف بداية تشخيص واضحة، بدل سبب لتغيير حسابات وشبكات ما اختبرتها أصلًا.