كيفية إصلاح "The WinRM client cannot process the request because it received an HTML error packet."
الوصف
This error occurs when you try to establish a remote management session using Windows Remote Management (WinRM) or PowerShell Remoting. It indicates that the WinRM client initiated a connection expecting a valid XML-formatted WS-Management response, but the target server, an intermediate proxy, or a local security application returned a standard web page (HTML) instead.
يحدث هذا عادةً لأن الطلب تم اعتراضه أو إعادة توجيهه أو حظره. وتشمل الأسباب الجذرية الشائعة:
- Proxy Server Interference: تكوين بروكسي محلي هو توجيه حركة مرور WinRM الداخلية إلى الإنترنت أو خادم بروكسي لا يمكنه مصادقته.
- URL/Port Conflicts: تستخدم خدمة ويب أخرى على الجهاز المستهدف (مثل IIS أو Skype أو Apache) نفس المنفذ الذي تم تكوينه لـ WinRM (المعيار الافتراضي هو 5985 لـ HTTP و 5986 لـ HTTPS).
- WinRM Service State: إما أن خدمة WinRM قد توقفت، أو تم تكوينها بشكل خاطئ، أو أن المستمعين فاسدون.
- Network Security Software: جدران الحماية، برامج مكافحة الفيروسات، أو عملاء VPN يحجبون أو يفتشون حركة المرور، مما يعطل بروتوكول الاتصال.
إصلاحات خطوة بخطوة
اتبع هذه الحلول بالترتيب حتى يتم حل المشكلة. يجب عليك تشغيل PowerShell أو برومنت الأوامر كمسؤول لجميع الخطوات.
الخطوة 1: تجاوز الوكيل للحركة المحلية
السبب الأكثر شيوعًا هو أن نظامك يحاول إرسال حركة مرور WinRM عبر خادم بالوكالة.
- افتح PowerShell كمدير
- تحقق من إعدادات بروكسي WinRM الحالية بتشغيل:
netsh winhttp show proxy - إذا تم إدراج خادم بروكسي في القائمة، تحقق مما إذا كان يتجاوز العناوين المحلية. إذا لم يكن كذلك، أو إذا كنت ترغب في الاختبار بدونه، قم بإعادة تعيين إعدادات بروكسي مؤقتًا عن طريق تشغيل:
netsh winhttp reset proxy - إذا كنت تستخدم الخيارات الإنترنت وكلاء، فتح Run الحوار (
Win + R), نوعinetcpl.cplو اضغط Enter. - إذهبي إلى Connections علامة التبويب والنقر على LAN settings.
- ضع علامة على الصندوق الذي يقول "Bypass proxy server for local addresses".
- انقر OK ثم انقر Apply.
الخطوة 2: إعادة تشغيل وتهيئة خدمة WinRM بسرعة
تحديث ملفات الخدمة والتحقق من المستمعين يمكن إصلاح الأخطاء التكوينية.
- افتح PowerShell كمدير
- إعادة تشغيل خدمة WinRM لإزالة الأخطاء المؤقتة:
Restart-Service WinRM - قم بتشغيل أداة التكوين الآلي لإصلاح قواعد المستمعين و جدار الحماية:
winrm quickconfig - اضغط Y (نعم) إذا طُلب منه إجراء تغييرات أو خلق مستمعين.
الخطوة الثالثة: التحقق من وجود نزاعات في الموانئ
إذا كان تطبيق آخر يستخدم المنفذ 5985، WinRM سوف تفشل وتعيد بيانات HTML من هذا التطبيق المتعارض.
- افتح Command Prompt أو PowerShell كمدير
- تحقق من العملية التي تستمع على منفذ HTTP WinRM الافتراضي (5985):
netstat -ano | findstr :5985 - لاحظ معرف العملية (PID) ، وهو الرقم في أقصى اليمين من خط الإخراج.
- تحقق من أي تطبيق يمتلك هذا PID عن طريق تشغيل (استبدال
YOUR_PIDمع العدد الفعلي):tasklist /fi "pid eq YOUR_PID" - إذا كان التطبيق شيء آخر غير
Systemأوwsmprovhost.exe, you must stop that conflicting application or change its port configuration.
الخطوة 4: إضافة الوجهة إلى قائمة المضيفين الموثوق بهم
إذا كنت تتصل بجهاز بعيد خارج نطاق الدليل النشط الخاص بك، فإن جهاز العميل الخاص بك سوف يرفض الاتصال ما لم يكن الهدف موثوق به صراحة.
- افتح PowerShell كمدير
- قم بتشغيل الأمر التالي للثقة في جهاز الكمبيوتر المستهدف المحدد (استبدال
IP_OR_NAMEمع عنوان IP للجهاز البعيد أو اسم المضيف):Set-Item WSMan:\localhost\Client\TrustedHosts -Value "IP_OR_NAME" -Forceملاحظة: يمكنك استخدام ` as the value to trust all hosts for testing purposes, though this is not recommended for permanent production use due to security risks.*
- إعادة تشغيل خدمة WinRM مرة أخرى لتطبيق التغييرات:
Restart-Service WinRM
الخطوة 5: تحقق من إعدادات SPN (اسم خدمة رئيسية)
إذا كنت في بيئة نطاق، قد تفشل مصادقة كيربروس إذا كان SPN مفقودًا أو مكررًا.
- افتح Command Prompt كمدير
- Test if the Service Principal Name is registered correctly for the target computer by running (replace
TARGET_COMPUTER_NAMEمع اسم الخادم الذي تحاول الوصول إليه):setspn -L TARGET_COMPUTER_NAME - ابحث عن المشاركات التي تبدأ بـ
WSMAN/. If they are missing, you may need to register them or contact your network domain administrator to sync the Active Directory objects.
قد يكون هناك بعض الأخطاء. Learn Microsoft