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

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

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

خطأ في ويندوز: لا يمكن لعميل WinRM Shell معالجة الطلب

وصف للخطأ

This error occurs when a Windows Remote Management (WinRM) session fails to receive output data from a remote machine. The specific function WSMansReceiveShellOutput يتوقع متغيرات صالحة لمعالجة تيار البيانات. إذا حدث انقطاع الشبكة أو طفرة العازل أو عدم تطابق في حجم البيانات أو الفساد أثناء الإرسال ، يصبح المعيار المطلوب صفرًا أو صفرًا ، مما يؤدي إلى فشل عميل WinRM وإلغاء العملية. يتم تشغيله عادة أثناء البرامج النصية الطويلة ، ونقل البيانات الثقيلة ، أو عندما يكون هناك عدم توافق في تكوينات حجم حزم PowerShell / WinRM بين الأجهزة المحلية والبعيدة.


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

Follow these solutions step-by-step to resolve the issue. You must run these commands on both the client (your machine) and the server (remote machine) ما لم ينص على خلاف ذلك.

الحل 1: زيادة WinRM MaxEnvelopeSizeKB

السبب الأكثر شيوعًا هو أن البيانات التي يتم إرجاعها تتجاوز الحجم القياسي الافتراضي للحزم المسموح به بواسطة WinRM.

  1. اضغط على Start menu ، نوع cmd ، انقر على Command Prompt ، وتحديد Run as administrator.
  2. تحقق من الحجم الحد الأقصى للحزمة الحالية بتنفيذ هذه الأوامر:
    winrm get winrm/config
  3. زيادة حجم الغلاف على كل من العميل والأجهزة البعيدة للسماح بحزم بيانات أكبر (على سبيل المثال ، تغييره إلى 8192 كيلوبايت):
    winrm set winrm/config @{MaxEnvelopeSizeKB="8192"}
  4. إعادة تشغيل خدمة WinRM لتطبيق التغييرات:
    net stop winrm
    net start winrm

الحل 2: زيادة مزود WSMan MaxMemoryPerShellMB

إذا نفدت الذاكرة المخصصة للقشرة البعيدة أثناء معالجة الإخراج، فإن معايير الوظيفة تفشل.

  1. افتح PowerShell as an Administrator.
  2. تحقق من الحد الحالي للذاكرة لكل قذيفة بتشغيل:
    Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB
  3. قم بزيادة حد الذاكرة إلى 2048 ميغابايت (أو أعلى اعتماداً على موارد النظام) لمنع حالات نفاد الذاكرة:
    Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
  4. إعادة تشغيل خدمة WinRM لإلتزام التكوين:
    Restart-Service winrm

الحل 3: تعديل عازل الخروج في نص PowerShell الخاص بك

إذا حدث الخطأ أثناء أمر معين أو برنامج برمجي، فقد يكون تدفق الناتج يغلب على خط الأنابيب. يمكنك إجبار الأمر على معالجة الناتج في دفعات أصغر أو مسح المخزن المؤقت.

  1. افتح النص و ابحث عن الأمر الذي يسبب الخطأ
  2. المرفق | Out-Buffer -Count 1 إلى الأمر لإجبار المعالجة الفورية لكل سطر بيانات بدلاً من تخزين دفعة كبيرة. مثال:
    Get-WinEvent -LogName Application | Out-Buffer -Count 1
  3. بدلاً من ذلك، إذا لم تكن بحاجة إلى تدفقات الإخراج التفصيلية، قم بإعادة توجيه الأخطاء والإخراجات الكبيرة إلى null:
    Your-Command-Here 2>$null 3>null 4>null

الحل 4: إعادة تعيين وإعادة تكوين إعدادات WinRM

إذا كانت معايير التكوين تالفة، فإن إعادة تعيين بنية WinRM إلى الإعدادات الافتراضية يمكن أن يحل المشاكل الخفية.

  1. افتح Command Prompt as an administrator.
  2. قم بتعطيل تكوين مستمع WinRM بالكامل:
    winrm invoke ResetListener winrm/config/listener?Address=*+Transport=HTTP
  3. إعادة تشغيل معالج التكوين السريع لإصلاح النقاط النهائية وقواعد جدار الحماية:
    winrm quickconfig -q
ERROR_WINRS_CLIENT_FREERUNCOMMANDRESULT_NULL_PARAM | ERROR_WINRS_CLIENT_SIGNAL_NULL_PARAM | ERROR_WINRS_CLIENT_FREEPULLRESULT_NULL_PARAM | ERROR_WINRS_CLIENT_PULL_NULL_PARAM | ERROR_WINRS_CLIENT_CLOSERECEIVEHANDLE_NULL_PARAM

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