خطأ في ويندوز: لا يمكن لعميل WinRM Shell معالجة الطلب
وصف الخطأ
يحدث هذا الخطأ عادة أثناء مهام الإدارة عن بعد باستخدام Windows Remote Management (WinRM) أو PowerShell Remoting يشير إلى أن جلسة الاتصال (مقبض القشرة) بين جهاز الكمبيوتر المحلي والخادم البعيد أصبحت معطلة أو غير متزامنة أو تالفة في منتصف العملية.
من بين الأسباب الشائعة:
- Network Instability: انقطاع شبكة قصيرة كسر محمول جلسة WSMan النشطة.
- Session Timeouts: الخادم البعيد أغلقت الاتصال العاطل، مما يجعل المعالجة المحلية غير صالحة.
- Resource Limits: الخادم البعيد وصل إلى الحد الأقصى المسموح به من القشرات النشطة لكل مستخدم
- Service Restarts: الـ
WinRMالخدمة على آلة الهدف تم إعادة تشغيلها أثناء تشغيل البرنامج
إصلاحات خطوة بخطوة
اتبع هذه الحلول لحل المشكلة.
إصلاح 1: إعادة تشغيل خدمة WinRM
عادة ما يزيل تحديث خدمة WinRM على كل من الآلة المحلية والآلة البعيدة المقبضات غير صالحة.
- افتح الباب Start Menu أبحث عن cmd ، انقر بزر الماوس الأيمن عليه، واختيار Run as administrator.
- اكتب الأمر التالي لإيقاف الخدمة واضغط Enter:
net stop winrm - اكتب الأمر التالي لبدء الخدمة من جديد واضغط Enter:
net start winrm
إصلاح 2: زيادة الحد الأقصى للقذائف لكل مستخدم
إذا كنت تقوم بتشغيل البرامج النصية المعقدة، فقد تكون قد وصلت إلى الحد الافتراضي للقذائف البعيدة المتزامنة. يمكنك زيادة هذه القيمة على الخادم البعيد.
- افتح PowerShell as an Administrator على آلة الوجهة
- قم بتشغيل هذه الأوامر للتحقق من حدودك الحالية:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - زيادة الحد (على سبيل المثال، وضعه إلى 50) عن طريق تشغيل:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50
إصلاح 3: إعادة إنشاء جلسة PowerShell
إذا ظهر هذا الخطأ داخل نص PowerShell قيد التشغيل لفترة طويلة ، فإن كائن الجلسة الموجود ميت. يجب عليك إغلاق الجلسة المكسورة بشكل صريح وإنشاء واحدة جديدة.
- ابحث عن متغير الجلسة الخاص بك في النص الخاص بك (عادة ما يطلق عليه اسم مثل
$session) - إضافة رمز لإزالة الجلسة المكسورة بأمان:
Remove-PSSession $session -ErrorAction SilentlyContinue - قم بإنشاء جلسة جديدة قبل تشغيل الأمر التالي:
$session = New-PSSession -ComputerName "RemoteComputerName" Invoke-Command -Session $session -ScriptBlock { YourCommand }
إصلاح 4: تعديل إعدادات MaxMemoryPerShellMB
يمكن أن يؤدي تخصيص الذاكرة المنخفض على الآلة البعيدة إلى تحطم عملية عامل مضيف WSMan ، مما يؤدي إلى معالجة غير صالحة.
- افتح PowerShell as an Administrator على جهاز التحكم عن بعد
- تحقق من الحد الحالي للذاكرة لكل قذيفة:
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB - زيادة حد الذاكرة إلى 2048 ميغابايت (2 غيغابايت) لضمان عدم نفاد الذاكرة للبرامج النصية:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048 - إعادة تشغيل خدمة WinRM لتطبيق التغييرات:
Restart-Service winrm
قد يكون هناك بعض الأخطاء. Learn Microsoft