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

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

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

إصلاح خطأ ويندوز: لا يمكن لعميل WinRS معالجة الطلب

This error typically occurs when using Windows Remote Management (WinRM) or Windows Remote Shell (WinRS) to execute commands on a remote computer. The specific error message, "المعلم المطلوب لوظيفة WinrsFreePullResult هو صفر" يشير إلى عدم تطابق البروتوكول، حالة جلسة فاسدة، مشاكل في تحديد حجم العازل، أو قطع غير متوقع لحمل البيانات بين العميل والجهاز المستهدف البعيد أثناء استرداد البيانات.

فيما يلي وصف كامل ومفصل لما يحدث هذا ودليل شامل خطوة بخطوة لإصلاحه.


نظرة عامة على الخطأ وأسبابه

الـ WinrsFreePullResult function هي مكالمة API داخلية يستخدمها عميل Windows Remote Shell لتحرير موارد الذاكرة المخصصة لسحب نتائج تنفيذ الأوامر من الخادم البعيد. عندما تتلقى هذه الوظيفة معيار صفر أو صفر ، فهذا يعني أن جانب العميل يتوقع مؤشر ذاكرة صالح أو حجم قطعة بيانات من تيار الشبكة ، لكنه تلقى استجابة فارغة أو تالفة بدلاً من ذلك.

تشمل العوامل الشائعة لهذا الخطأ:


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

اتبع هذه الخطوات بالتسلسل لحل الخطأ. ستحتاج إلى امتيازات إدارية على كل من الكمبيوتر العميل والجهاز البعيد لتنفيذ هذه الأوامر.

الخطوة 1: إعادة تشغيل خدمة WinRM

أسرع حل لتلف جلسة مؤقتة هو إعادة تشغيل خدمة إدارة ويندوز عن بعد على كل من الآلات.

  1. افتح قائمة البدء، اكتب cmd انقر على الزر الأيمن Command Prompt ، وتحديد Run as administrator.
  2. اكتب الأمر التالي لإيقاف الخدمة:
    net stop winrm
  3. اكتب الأمر التالي لبدء الخدمة من جديد:
    net start winrm
  4. قم بتنفيذ هذه الخطوات المتطابقة على الجهاز البعيد إذا كان لديك وصول بديل إليه (على سبيل المثال ، عبر RDP أو الوصول المادي).

الخطوة 2: زيادة MaxMemoryPerShellMB وذخائر الخروج

إذا كان الأمر الذي تقوم بتشغيله يولد كميات هائلة من النص أو بيانات الإخراج، فإن حدود الذاكرة الافتراضية لـ WinRM ستسقط الاتصال وتسبب هذا الخطأ.

  1. على... Remote Target Machine ، مفتوحة PowerShell as an Administrator.
  2. تحقق من حدود التكوين الحالية عن طريق تشغيل:
    Get-Item WSMan:\localhost\Shell\*
  3. زيادة الذاكرة المخصصة لكل قذيفة من الافتراضية (عادة 512MB أو 1024MB) إلى 2048MB عن طريق تشغيل:
    Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048
  4. قم بزيادة الحد الأقصى لعدد القذائف المتزامنة المسموح بها لكل مستخدم لضمان عدم اختناق الجلسة:
    Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 30
  5. إعادة تشغيل خدمة WinRM لتطبيق هذه التغييرات:
    Restart-Service winrm

الخطوة الثالثة: تعديل URIات وإعدادات الإيقاف الزمني على العميل

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

  1. على... Local Client Machine ، مفتوحة PowerShell as an Administrator.
  2. حدد الموعد الزمني الهيكلي الافتراضي أعلى للسماح بتكملة تدفقات البيانات الكبيرة بنجاح:
    Set-Item WSMan:\localhost\Client\DefaultPorts\HTTP 5985
    Set-Item WSMan:\localhost\Client\NetworkDelayms 60000
  3. إذا كنت تقوم بتنفيذ الأمر باستخدام winrs قابل للتنفيذ، إضافة -t المعيار لزيادة وقت التنفيذ يدويًا. على سبيل المثال:
    winrs -r:RemoteComputerName -t:600 "your-command-here"

    (ملاحظة: -t:600 تعيين العلامات عتبة التوقيت إلى 600 ثانية).

الخطوة 4: إعادة تسجيل وإصلاح تكوين WinRM

إذا أصبحت التكوينات غير مرتبة أو تعرضت وصفات الأمان للضرر ، فيمكن إعادة تعيين بنية تحتية WinRM listener إصلاح النقاط النهائية الكامنة.

  1. على... Remote Target Machine ، مفتوحة Command Prompt as an Administrator.
  2. قم بتشغيل أداة التكوين لإصلاح المستمعين وفتح استثناءات جدار الحماية تلقائيًا:
    winrm quickconfig
  3. إذا طُلب منك إجراء تغييرات أو تحليل الحالة، اضغط y وأضرب Enter أن تقبل.
  4. إذا كان الإعداد قيد التشغيل بالفعل، قم بإعادة تعيين إعدادات التكوين بالكامل إلى الحالات الافتراضية باستخدام:
    winrm invoke restore winrm/config @{}
  5. أعد التشغيل winrm quickconfig بعد استعادة لإعادة بناء النقاط النهائية النظيفة.

الخطوة 5: تحقق من فحص حزم الشبكة وحجم MTU

يمكن أن تتجزأ الحزم الكبيرة التي تحتوي على حمولات بيانات عبر طرق الشبكة. إذا قامت جدار الحماية بإزالة الحزم اللاحقة ، فإن العميل يواجه خطأ المعيار الصفر.

  1. قم بإيقاف فحص الحزم العميقة المؤقتة أو فحص حركة المرور HTTP للبوابات 5985 (HTTP) و 5986 (HTTPS) داخل جدران الحماية المحلية أو محيط الشبكة.
  2. Ensure that your Network Interface Card (NIC) Maximum Transmission Unit (MTU) size matches on both client and host (Standard value is 1500 يمكنك التحقق من هذا في مدخل الأوامر عن طريق:
    netsh interface ipv4 show subinterfaces

ERROR_WINRS_CLIENT_SIGNAL_NULL_PARAM | ERROR_WINRS_CLIENT_RECEIVE_NULL_PARAM | ERROR_WINRS_CLIENT_PULL_NULL_PARAM | ERROR_WINRS_CLIENT_CLOSERECEIVEHANDLE_NULL_PARAM | ERROR_WINRS_CLIENT_SEND_NULL_PARAM

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