🇬🇧 | 🇩🇪 | 🇫🇷 | 🇪🇸 | 🇨🇳 | 🇸🇦
ليس لدينا DLL ولكن لدينا:
تحليل ملفات ويندوز & مكافحة الفيروسات السريعة عبر الإنترنت

واجهة بسيطة تتميز بالبحث السريع، والتحميل المريح، وهيكل القسم النظيف.

🛡️🔍 التحقق السريع ملفك، مجرد إسقاط على هذه الصفحة.
فحص الفيروسات، التجزئة، التحقق من التوقيع، الهندسة المعمارية، معلومات الذكاء الاصطناعي.

إصلاح لخطأ WinRM: رمز حالة إعادة التوجيه HTTP غير مدعوم

وصف للخطأ

يحدث هذا الخطأ عندما يحاول عميل Windows Remote Management (WinRM) الاتصال بخادم أو نقطة نهاية بعيدة ، ولكن الخادم المستهدف يقوم بإعادة توجيه حركة المرور (عادةً عبر رمز حالة HTTP 301 أو 302 أو 307) إلى عنوان URL أو منفذ HTTPS مختلف. افتراضيًا ، يعامل بروتوكول WinRM إعادة توجيهات HTTP على أنها خطر أمني ويحظرها صراحة. نظرًا لأن WinRM يرفض اتباع رابط الإعادة التوجيه ، فإن الاتصال يفشل على الفور. تحدث هذه المشكلة غالبًا عندما يقوم المسؤولون بتكوين إعادة توجيهات IIS العالمية على خادم ، أو يستخدمون موازين الحمل التي تجبر حركة المرور HTTP تلقائيًا إلى HTTPS ، أو يكتبون كتلة العنوان الخاطئة في نصوص الأتمتة الخاصة بهم.


إصلاحات خطوة بخطوة

الطريقة 1: تجنب إعادة التوجيه عن طريق الاتصال مباشرة إلى نقطة HTTPS النهائية

الطريقة الأكثر أمانًا لإصلاح هذه المشكلة هي تجنب إعادة التوجيه بالكامل من خلال استهداف عنوان URL النهائي HTTPS مباشرة.

  1. افتح وحدة التحكم PowerShell أو النص الإداري.
  2. تحديد موقع الأوامر التي تسبب الخطأ (عادة Enter-PSSession, New-PSSession ، أو Invoke-Command )
  3. قم بتغيير معيار بروتوكول الاتصال من HTTP إلى HTTPS ، وأضف بشكل صريح منفذ HTTPS الصحيح (المعيار الافتراضي هو 5986).
    • Example of a bad command causing a redirect:
      New-PSSession -ComputerName "Server01"
    • Example of the corrected command:
      New-PSSession -ComputerName "Server01" -UseSSL
  4. إذا كنت تستخدم URI اتصال معين، تأكد من أنها تبدأ صراحة مع https:// ويشمل اسم النطاق الصحيح لتطابق شهادة SSL للخادم.

الطريقة 2: تعديل قواعد إعادة توجيه IIS على الخادم المستهدف

إذا كنت تتحكم في الخادم البعيد، فإن قاعدة إعادة توجيه HTTP العالمية في خدمات معلومات الإنترنت (IIS) من المحتمل أن تكسر WinRM. يجب عليك استبعاد الدليل الافتراضي WinRM من قاعدة إعادة التوجيه.

  1. قم بتسجيل الدخول إلى خادم ويندوز البعيد الذي يسبب الخطأ
  2. اضغط على Start Menu ، نوع IIS Manager ، و افتحه.
  3. على اليسار Connections لوحة، توسيع عقدة الخادم الخاص بك وانقر على Sites ، ثم حدد الموقع الذي يستضيف قواعد إعادة التوجيه الخاصة بك (عادة Default Web Site )
  4. في النافذة الوسطى، انقر مرتين على HTTP Redirect.
  5. انظر إلى تكوين إعادة التوجيه الخاص بك. إذا كان إعادة توجيه جميع الطلبات إلى موقع HTTPS، تحتاج إلى إضافة استثناء لمسار WinRM.
  6. To do this using web.config configuration rather than the GUI, open the website root folder (usually C:\inetpub\wwwroot و أفتح web.config الملف.
  7. إضافة a <location> قاعدة المسار لتعطيل إعادة التوجيه PowerShell أو wsman المسارات:
    <location path="PowerShell">
        <system.webServer>
            <httpRedirect enabled="false" />
        </system.webServer>
    </location>
  8. حفظ الملف وإعادة تشغيل IIS عن طريق تشغيل iisreset في برنامج الإدارة

الطريقة الثالثة: تمكين العلم "السماح بإعادة التوجيه" في جلسات باورشل

إذا كان عليك السماح بإعادة التوجيه بسبب البنية التحتية للشبكة أو إعداد موازنة الحمل ، فيمكنك إرشاد خيار جلسة عميل WinRM بشكل صريح للسماح بإعادة التوجيه.

  1. افتح نص PowerShell الخاص بك أو وحدة التحكم.
  2. تعريف كائن خيار جلسة WinRM الجديد وتعيين AllowRedirection خاصية لصحيح.
    $SessionOptions = New-PSSessionOption -AllowRedirection
  3. مرر هذا العنصر الخيار إلى أمر الاتصال الخاص بك باستخدام -SessionOption المعلم
    New-PSSession -ComputerName "Server01" -SessionOption $SessionOptions
  4. ملاحظة: لن يتبع WinRM إعادة التوجيه إلا إذا كنت تستخدم شكل URI اتصال صريح أو بيانات اعتماد صريحة إلى جانب هذا الخيار.

الطريقة 4: تحديث إعدادات SPN و Kerberos

إذا كان خطأ إعادة التوجيه هو أحد الأعراض المضللة لفشل مصادقة كيربيروس في التوجيه من خلال اسم مستعار DNS عام ، فيمكن تعيين اسم رئيس الخدمة (SPN) لحلها.

  1. افتح عجلة التوجيه كمسؤول على جهاز التحكم في نطاق Active Directory أو جهاز الإدارة.
  2. تحقق من SPNs الموجودة لخادم الهدف الخاص بك عن طريق تشغيل:
    setspn -L Server01
  3. إذا كان الخادم يستخدم اسم مستعار DNS أو اسم مضيف مخصص، قم بتسجيل WSMan SPN يدويًا لربطها بشكل صحيح بحساب الكمبيوتر:
    setspn -S WSMAN/Server01 Server01
    setspn -S WSMAN/://yourdomain.com Server01
  4. إعادة تشغيل خدمة WinRM على الجهاز البعيد عن طريق تشغيل Restart-Service WinRM في PowerShell.
ERROR_WSMAN_SERVER_DESTINATION_LOCALHOST | ERROR_WSMAN_UNKNOWN_HTTP_STATUS_RETURNED | ERROR_WSMAN_HTTP_REQUEST_TOO_LARGE_STATUS | ERROR_WSMAN_HTTP_SERVICE_UNAVAILABLE_STATUS | ERROR_WSMAN_HTTP_NOT_FOUND_STATUS

قد يكون هناك بعض الأخطاء. Learn Microsoft