خطأ في ويندوز: لا يمكن لعميل WinRM Shell معالجة الطلب
وصف الخطأ
This error occurs when the Windows Remote Management (WinRM) service loses track of the unique identifier (shell handle) assigned to your remote session. It signifies a communication breakdown between your local machine and the remote server.
الأسباب الشائعة
- Network Instability: انخفاضات قصيرة في الاتصال تجعل الخادم يسقط عقدة الجلسة.
- Session Timeouts: الخادم البعيد أغلق الجلسة العاطلة تلقائياً
- Server Resource Limits: لقد ضربت الآلة عن بعد أقصى عدد مسموح به من القذائف المتزامنة
- Service Crashes: خدمة WinRM على الجهاز البعيد أعيد تشغيلها بشكل غير متوقع
إصلاحات خطوة بخطوة
إصلاح 1: إعادة تشغيل خدمة WinRM
تحديث خدمة WinRM على كل من الأجهزة المحلية والبعيدة يعيد إنشاء إطار الاتصال.
- افتح الباب Start Menu.
- النوع cmd أو PowerShell.
- انقر بزر الماوس الأيمن على التطبيق واختر Run as administrator.
- النوع
net stop winrmو اضغط Enter. - انتظر حتى تتوقف الخدمة بالكامل
- النوع
net start winrmو اضغط Enter.
إصلاح 2: زيادة الحد الأقصى للقذائف لكل مستخدم
إذا كان الخادم البعيد يقتل التعامل الخاص بك لأنه ينفذ من الموارد، وزيادة الحد من تخصيص القشرة يحل المشكلة.
- افتح PowerShell كمسؤول على الخادم البعيد
- تحقق من الحد الحالي من خلال تشغيل:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - زيادة الحد إلى 50 من خلال تشغيل:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50 - إعادة تشغيل خدمة WinRM باستخدام الأوامر من Fix 1 لتطبيق التغييرات.
إصلاح 3: تعديل خصائص الإيقاف الفارغ
منع الخادم من إغلاق عقدة القشرة قبل الأوان خلال فترات عدم النشاط.
- افتح PowerShell كمسؤول على الخادم البعيد
- تحقق من إعداد وقت التوقف الحالي من خلال تشغيل:
Get-Item WSMan:\localhost\Shell\IdleTimeout - قم بتعيين قيمة وقت الاستراحة العاطلة إلى عتبة أعلى (القيمة بالميلي ثانية، 7200000 تساوي ساعتين):
Set-Item WSMan:\localhost\Shell\IdleTimeout 7200000 - أغلق و أعد فتح وحدة التحكم عن بعد
إصلاح 4: إعادة الاتصال وإعادة تعيين متغير الجلسة الخاص بك
إذا كنت تقوم بتشغيل النصوص عن طريق متغير جلسة مخزن (مثل $Session يجب عليك مسحها وإعادة بناؤها.
- إزالة متغير الجلسة المكسور في النص الخاص بك أو وحدة التحكم:
Remove-PSSession $Session - إعادة إنشاء الجلسة للحصول على عقدة قذيفة جديدة تماماً:
$Session = New-PSSession -ComputerName "RemoteServerName" - إدخال الجلسة الجديدة أو تشغيل الأوامر مرة أخرى:
Enter-PSSession $Session
قد يكون هناك بعض الأخطاء. Learn Microsoft