كيفية إصلاح "عميل WinRS لا يستطيع معالجة الطلب. المعيار المطلوب لوظيفة WinrsCloseSendHandle هو صفر أو صفر".
خطأ إدارة ويندوز عن بعد (WinRM) "The WinRS client cannot process the request. The parameter required for the WinrsCloseSendHandle function is null or zero" يحدث عادة عندما تنتهي جلسة PowerShell أو WinRS عن بعد بشكل مفاجئ ، أو تتلقى استجابة صفر غير متوقعة من الخادم المستهدف ، أو تواجه عدم تطابق البروتوكول بين العميل وأجهزة المضيف. فهذا يعني أن عميل WinRM المحلي حاول إغلاق عقدة قناة اتصالات لم يتم إطلاقها بشكل صحيح أو تم إبطالها بالفعل من قبل الطرف البعيد.
إصلاحات خطوة بخطوة
الطريقة 1: إعادة تشغيل خدمة WinRM
حالة خدمة عالقة أو فاسدة على العميل أو الخادم هي السبب الأكثر شيوعًا.
- اضغط
Windows Key + Xو إختاري Terminal (Admin) أو Command Prompt (Admin). - اكتب الأمر التالي لإعادة تشغيل خدمة WinRM على جهازك المحلي:
net stop winrm && net start winrm - إذا كان لديك إمكانية الوصول إلى الجهاز البعيد، قم بتنفيذ نفس الأمر على الخادم المستهدف لإعادة تعيين حالة المستمع.
طريقة 2: إعادة ضبط تكوين WinRM إلى الإعدادات الافتراضية
يمكن أن تسبب معايير النقل غير المهيأة أو إعدادات المستمع الفاسدة مسامير صفر أثناء مفاوضات الجلسة.
- افتح Command Prompt (Admin).
- قم بتشغيل أمر التكوين السريع لإصلاح الإعدادات الافتراضية وتمكين استثناءات جدار الحماية:
winrm quickconfig - النوع
yو اضغط Enter عندما يطلب منك إجراء التغييرات المطلوبة.
طريقة 3: زيادة MaxShellsPerUser و MaxMemoryPerShellMB
If the remote server kills the session because it exceeds resource limits, the client will receive a null object, triggering this error. You need to run these commands on the target server.
- افتح PowerShell (Admin) على جهاز التحكم عن بعد
- تحقق من الحدود الحالية عن طريق تشغيل:
Get-Item WSMan:\localhost\Shell\* - زيادة الحد الأقصى للقذائف المتزامنة المسموح بها لكل مستخدم:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50 - زيادة الذاكرة المخصصة لكل قذيفة لمنع انخفاض الذاكرة:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 1024 - إعادة تشغيل خدمة WinRM لتطبيق التغييرات:
Restart-Service winrm
الطريقة 4: تحديث أو إعادة تثبيت إطار إدارة ويندوز (WMF)
يحدث عدم تطابق البروتوكول عندما يقوم العميل والخادم بتشغيل إصدارات مختلفة بشكل كبير من PowerShell / WMF.
- تحقق من إصدار PowerShell الحالي على كلتا الآلتين بتشغيل:
$PSVersionTable.PSVersion - إذا كانت إحدى الأجهزة تستخدم إصدارًا قديمًا (مثل WMF 3.0 أو 4.0) ، قم بتنزيل وتثبيت أحدث حزمة متوافقة من Windows Management Framework أو PowerShell 7 من الموقع الرسمي لشركة Microsoft للتأكد من أن كلا العقد تستخدم بروتوكولات WS-Management متطابقة.
قد يكون هناك بعض الأخطاء. Learn Microsoft