خطأ ويندوز WinRM: دليل لإصلاح الأخطاء
الخطأ "The WS-Management service on the remote machine cannot process the shell request" typically occurs when you try to establish a remote PowerShell session (Enter-PSSession) or run a remote command (Invoke-Command) using Windows Remote Management (WinRM).
وصف للخطأ
هذا الخطأ يعني أن خدمة WinRM على الكمبيوتر المستهدف (البعيد) تلقت طلب الاتصال الخاص بك ، ولكنها فشلت في إنشاء قشرة أمر لك. تشمل الأسباب الجذرية الأكثر شيوعًا:
- MaxShellsPerUser limit reached: لدى الآلة البعيدة حد صارم لعدد قشور الأوامر البعيدة التي يمكن لمستخدم واحد فتحها في وقت واحد. إذا لم يتم إغلاق الجلسات السابقة بشكل صحيح ، فإن الخادم يحجب الجلسات الجديدة.
- MaxMemoryPerShellMB limit exceeded: العمليات التي تعمل داخل الجلسة البعيدة تحتاج إلى أكثر من ذاكرة الوصول العشوائي (RAM) مما يسمح به الحد المحدد على الجهاز البعيد.
- WinRM service corruption: خدمة WinRM أو مستمعيها غير مثبتة أو معلقة على الجهاز البعيد.
إصلاحات خطوة بخطوة
يجب أن تطبق هذه الإصلاحات على remote machine (الكمبيوتر الذي تحاول الاتصال به) قم بتسجيل الدخول إليه مباشرة أو عبر سطح المكتب البعيد (RDP).
إصلاح 1: زيادة الحد الأقصى للقذائف لكل مستخدم
هذه هي القرار الأكثر شيوعًا. إنها تزيد من عدد الاتصالات البعيدة المتزامنة التي يمكن للمستخدم الواحد الاحتفاظ بها.
- افتح الباب Start Menu على الحاسوب البعيد
- النوع
powershell، انقر على Windows PowerShell ، وتحديد Run as administrator. - تحقق من الحد الحالي بتشغيل هذه الأوامر:
Get-Item WSMan:\localhost\Shell\MaxShellsPerUser - زيادة الحد (على سبيل المثال، وضعه إلى 50) عن طريق تنفيذ:
Set-Item WSMan:\localhost\Shell\MaxShellsPerUser 50 - إعادة تشغيل خدمة WinRM لتطبيق التغييرات:
Restart-Service WinRM
إصلاح 2: زيادة الذاكرة المخصصة لكل قشرة
إذا كانت البرامج النصية أو الأوامر الخاصة بك تستهلك الكثير من الموارد ، فقد يقتل Windows طلب القشرة بسبب قيود الذاكرة.
- افتح Windows PowerShell كـ Administrator على جهاز التحكم عن بعد
- تحقق من الحد الحالي للذاكرة (عادة 1024MB افتراضيًا):
Get-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB - لزيادة الحد الأقصى للذاكرة إلى 2048MB (2GB) أو أعلى عن طريق تشغيل:
Set-Item WSMan:\localhost\Shell\MaxMemoryPerShellMB 2048 - إعادة تشغيل خدمة WinRM لتطبيق التكوين:
Restart-Service WinRM
إصلاح 3: إيقاف عمليات PowerShell اليتيمة
إذا لم تتمكن من تغيير حدود التكوين في الوقت الحالي، يمكنك تحرير الفراغات عن طريق إنهاء جلسات الخلفية المتعثرة.
- افتح PowerShell كـ Administrator على جهاز التحكم عن بعد
- ابحث عن عمليات PowerShell الخلفية التي تعمل تحت حساب المستخدم الخاص بك:
Get-Process wsmprovhost - قم بإنهاء جميع عمليات المضيف البعيدة الخفية بقوة لتطهير حصتك:
Stop-Process -Name wsmprovhost -Force
إصلاح 4: إعادة تكوين و إعادة تعيين WinRM
إذا لم تحل تغييرات التكوين المشكلة ، فقد تكون حالة WinRM listener تالفة.
- افتح Command Prompt (cmd) أو PowerShell كـ Administrator.
- قم بتشغيل أداة التكوين المدمجة لإصلاح المستمعين واستثناءات جدار الحماية:
winrm quickconfig - إذا طُلب منك إجراء تغييرات أو المساعدة في تمكين الخدمة، اكتب
yو اضغط Enter.
قد يكون هناك بعض الأخطاء. Learn Microsoft