إصلاح WinRM HTTP 400 خطأ طلب سيء
يقوم عميل WinRM (Windows Remote Management) بإلقاء خطأ HTTP 400 Bad Request عندما يحاول إنشاء اتصال عن بُعد ، ولكن الخادم المستهدف يرفض تنسيق أو حجم أو رؤوس الطلب الوارد. نظرًا لأن الخدمة البعيدة لا تقدم تفاصيل إضافية ، فإن هذا الخطأ ينبع عادةً من عدم تطابق التكوين المحلي أو مستمعين WinRM فاسدين أو مشاكل SPN (اسم رئيس الخدمة) أو رموز مصادقة Kerberos ذات الحجم الكبير.
هنا دليل خطوة بخطوة لتشخيص وحل هذه المشكلة.
الخطوة الأولى: قم بتشغيل أداة تكوين WinRM السريعة
أسرع طريقة لإصلاح المستمعين المتضررين أو مشاكل تكوين الخدمة الأساسية هي السماح لويندوز بإصلاح إعداد WinRM تلقائيًا.
- اضغط على Start قائمة، نوع
cmdانقر على الزر الأيمن Command Prompt ، وتحديد Run as administrator. - اكتب الأوامر التالية واضغط Enter:
winrm quickconfig - إذا طُلب منك إجراء تغييرات أو تكوين استثناءات جدار الحماية، اكتب
yو اضغط Enter.
الخطوة 2: مسح قائمة WinRM Client WinRM TrustedHosts
تم تكوينها بشكل غير صحيح TrustedHosts يمكن أن يسبب إعادة تعيين أو تكوين هذه القائمة بشكل صحيح يمكن أن يحل انهيار الاتصال.
- افتح Command Prompt كمدير
- للسماح بالاتصال مع أي مضيف مؤقتاً (لتجربة) ، قم بتشغيل:
winrm set winrm/config/client @{TrustedHosts="*"} - بدلا من ذلك، إذا كنت ترغب في تقييدها إلى خادم الهدف الخاص بك، استبدال النجمة مع IP خادم الهدف الخاص بك أو اسم المضيف:
winrm set winrm/config/client @{TrustedHosts="TARGET_SERVER_NAME"}
الخطوة الثالثة: إعادة إنشاء WinRM HTTP/HTTPS Listeners
إذا كان المستمعون الافتراضيين على الجهاز البعيد فاسدين أو مرتبطين بموانئ متضاربة ، فإن حذفهم وإعادة إنشاؤهم يصلح توجيه خدمة الويب الأساسية.
- افتح Command Prompt كمدير على target machine.
- تحقق من المستمعين الحاليين بتشغيل:
winrm enumerate winrm/config/listener - حذف مستمع HTTP المكسور:
winrm delete winrm/config/listener?Address=*+Transport=HTTP - إنشاء مستمع HTTP نظيف:
winrm create winrm/config/listener?Address=*+Transport=HTTP - إعادة تشغيل خدمة WinRM لتطبيق التغييرات:
net stop winrm && net start winrm
الخطوة الرابعة: ضبط MaxTokenSize لمصادقة كيربيروس
إذا كنت تتصل عن طريق بيئة النطاق وحساب المستخدم الخاص بك ينتمي إلى العديد من مجموعات Active Directory ، فقد يكون رمز مصادقة Kerberos الخاص بك كبيرًا جدًا. وهذا يسبب رفض خادم WinRM HTTP للحزمة باعتبارها "طلبًا سيئًا".
- اضغط
Win + R، نوعregeditو اضغط Enter لفتح محرر السجل - انتقل إلى المسار التالي:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters(ملاحظة: إذاParametersالمفتاح غير موجود، انقر بزر الماوس الأيمنKerberos, select New > Key, and name it Parameters). - انقر بزر الماوس الأيمن
Parametersالمفتاح، اختر New > DWORD (32-bit) Value. - أسمي القيمة الجديدة
MaxTokenSize. - انقر مرتين
MaxTokenSize, ضع القاعدة على Decimal, change the Value data to65535و انقر OK. - إعادة تشغيل الكمبيوتر لتطبيق تغييرات السجل
الخطوة الخامسة: زيادة الحجم الأقصى للمغلف
في بعض الأحيان يتجاوز حمولة هيكل البيانات المنقولة عبر WinRM حجم التكوين المسموح به افتراضيًا ، مما يؤدي إلى خطأ HTTP 400 الفوري.
- افتح Command Prompt كمدير
- قم بتشغيل الأمر التالي لزيادة الحجم الأقصى للغلاف إلى 1500 كيلوبايت:
winrm set winrm/config @{MaxEnvelopeSizekb="1500"} - جرب الاتصال عن بعد مرة أخرى لمعرفة ما إذا كان الحد من الحمولة المفيدة هو سبب المشكلة.
قد يكون هناك بعض الأخطاء. Learn Microsoft