🇬🇧 | 🇩🇪 | 🇫🇷 | 🇪🇸 | 🇨🇳 | 🇸🇦
ليس لدينا DLL ولكن لدينا:
تحليل ملفات ويندوز & مكافحة الفيروسات السريعة عبر الإنترنت

واجهة بسيطة تتميز بالبحث السريع، والتحميل المريح، وهيكل القسم النظيف.

🛡️🔍 التحقق السريع ملفك، مجرد إسقاط على هذه الصفحة.
فحص الفيروسات، التجزئة، التحقق من التوقيع، الهندسة المعمارية، معلومات الذكاء الاصطناعي.

إصلاح لخطأ ويندوز: متغير WinRM Shell Client Environment صفر أو صفر

يشرح هذا الدليل الشامل سبب خطأ WinRM ويوفر طرق سهلة خطوة بخطوة لحلها.


نظرة عامة على الأخطاء

معناها

رسالة الخطأ "The WinRM Shell client cannot process the request. One of the environment variable name passed to the WSManCreateShell function is null or zero." يحدث عندما تحاول إدارة ويندوز عن بعد (WinRM) بدء جلسة PowerShell أو عجلة التعليمات عن بعد ، ولكنها تفشل لأن متغيرات البيئة واحدة أو أكثر على الكمبيوتر المحلي (العميل) أو الكمبيوتر البعيد (الخادم) فاسدة أو فارغة أو تم تنسيقها بشكل غير صحيح.

لماذا يحدث ذلك؟


إصلاحات خطوة بخطوة

الطريقة 1: فحص وتصحيح المتغيرات البيئية الفارغة باستخدام PowerShell

اسم متغير فارغ داخل كتلة تكوين البيئة هو السبب الأكثر شيوعًا. يمكنك العثور عليه وإزالته باستخدام نافذة PowerShell المحلية.

  1. Open PowerShell as Administrator:

    • اضغط على Start قائمة الطعام
    • النوع PowerShell.
    • انقر بجهاز الضغط الأيمن Windows PowerShell و إختاري Run as administrator.
  2. Scan for Corrupted Variables:

    • نسخ ولصق النص التالي في نافذة باورشل، ثم اضغط Enter:
      [Environment]::GetEnvironmentVariables().Keys | ForEach-Object {
          if ([string]::IsNullOrEmpty($_) -or \(_ -match "^\s*\)") {
              Write-Host "Found an empty or null environment variable name!" -ForegroundColor Red
          }
      }
  3. Identify and Remove via GUI (If Found):

    • اضغط Win + R على لوحة المفاتيح الخاصة بك لفتح Run مربع الحوار
    • النوع sysdm.cpl و اضغط Enter لفتح System Properties.
    • إذهبي إلى Advanced تيب.
    • اضغط على Environment Variables الزر في الأسفل.
    • انظر من خلال كليهما User variables و.. System variables.
    • ابحثي تحديداً عن أي صف حيث Variable العمود فارغ تماماً، يحتوي على المسافات فقط، أو يعرض رموزاً فاسدة.
    • حدد الصف المكسور وانقر Delete.
    • انقر OK على جميع النوافذ المفتوحة لحفظ التغييرات.

طريقة 2: تنظيف مفاتيح سجل البيئة

If the GUI does not display the broken variable, it may be hidden as a malformed entry inside the Windows Registry.

  1. Open the Registry Editor:

    • اضغط Win + R على لوحة المفاتيح الخاصة بك.
    • النوع regedit و اضغط Enter.
    • انقر Yes إذا ظهرت إشارة تحكم حساب المستخدم (UAC).
  2. Check User Environment Variables:

    • انتقل إلى المسار التالي في الشريط الجانبي الأيسر: HKEY_CURRENT_USER\Environment
    • انظري إلى Name العمود على النافذة اليمنى.
    • Ensure every entry has a valid name. If you see an entry with a blank name, right-click it and select Delete.
  3. Check System Environment Variables:

    • انتقل إلى المسار التالي: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
    • تحقق من Name العمود على النافذة اليمنى.
    • حدد أي إدخالات ذات أسماء خالية أو فارغة أو مساحة فقط.
    • انقر بزر الماوس الأيمن على إدخال غير صالح واختيار Delete.
  4. Restart Your Computer:

    • أغلق محرر السجل
    • إعادة تشغيل جهاز الكمبيوتر لتطبيق تغييرات السجل على حالة النظام

طريقة 3: إعادة تعيين خدمة WinRM

إذا كانت متغيرات البيئة واضحة ولكن عميل WinRM لا يزال معطلًا ، فإن إعادة تعيين تكوينات خدمة WinRM ستعيد العمليات الافتراضية.

  1. Open Command Prompt as Administrator:

    • اضغط على Start قائمة الطعام
    • النوع cmd.
    • انقر بجهاز الضغط الأيمن Command Prompt و إختاري Run as administrator.
  2. Run WinRM Quick Config:

    • اكتب الأوامر التالية واضغط Enter:
      winrm quickconfig
    • إذا طُلب منك إجراء تغييرات أو تحليل التكوينات، اكتب y (نعم) والضغط Enter.
  3. Restart the WinRM Service:

    • قم بتشغيل هذه الأوامر بالتسلسل Enter بعد كل:
      net stop winrm
      net start winrm

الطريقة 4: اختبار اتصال WinRM

بعد تطبيق الإصلاحات، تحقق من أن WSManCreateShell تم حل خطأ التمهيدي

  1. افتح واحداً جديداً PowerShell النافذة.
  2. قم بتشغيل أمر اختبار الحلقة المحلية للتأكد من أن عميل القشرة يعالج المتغيرات بشكل صحيح:
    Test-WSMan
  3. إذا نجحت ، اختبر اتصال القشرة البعيدة بشكل صريح باستخدام:
    Enter-PSSession -ComputerName localhost

    (استبدال) localhost مع اسم هدف الخادم البعيد إذا كنت تتصل بجهاز خارجي).


إذا استمر الخطأ بعد محاولة هذه الخطوات ، أخبرني: * هل تقوم بتشغيل هذا الأمر للاتصال بجهاز ** محلي ** أو خادم ** عن بعد؟ * هل أصدرت الطريقة 1 أي أسماء ** متغيرات محددة ** قبل تحطم؟ * ما هي إصدار ** من Windows ** التي تعمل عليها حاليًا. ERROR_WSMAN_CLIENT_USERNAME_AND_PASSWORD_NEEDED | ERROR_WSMAN_CLIENT_INVALID_CERT_DNS_OR_UPN | ERROR_WSMAN_SHELL_ALREADY_CLOSED | ERROR_WSMAN_CREATESHELL_NULL_STREAMID | ERROR_WSMAN_SHELL_INVALID_SHELL_HANDLE

قد يكون هناك بعض الأخطاء. Learn Microsoft