إصلاح خطأ ويندوز: استجابة علامات غير صالحة لعميل WinRM
وصف للخطأ
رسالة الخطأ "The WinRM client cannot process the request. The response received from the destination machine contains invalid characters and cannot be processed" typically occurs during remote management tasks using Windows Remote Management (WinRM) or PowerShell Remoting.
تنشأ هذه المشكلة عندما يقوم الخادم البعيد بمعالجة الأمر الخاص بك ولكنه يعيد مخرجًا يحتوي على تسلسلات بايت غير متوقعة أو أحرف غير ASCII أو رموز فرار ANSI (غالباً ما تستخدم لتلوين النص أو تنسيقها بواسطة أدوات سطر الأوامر أو البرامج أو الملفات الشخصية الخاصة بطرف ثالث). نظرًا لأن تحليل WinRM XML يتوقع تنسيق XML متوافقًا مع المعايير ، فإن هذه الأحرف الخام أو غير المحفوظة أو غير القياسية تفسد التدفق ، مما يتسبب في رفض العميل للرد بالكامل.
إصلاحات خطوة بخطوة
إصلاح 1: تعطيل الملفات الشخصية وتنسيق النص على الجهاز البعيد
إذا كان حساب المستخدم الذي تتصل به لديه ملف تعريف PowerShell مخصص ( $PROFILE ) أو برنامج برمجي لبدء التعليمات البرمجية الذي يخرج نصاً أو لافتات أو ألوان عند تسجيل الدخول، فإنه سيكسر WinRM.
- تسجيل الدخول إلى الآلة البعيدة مباشرة (من خلال RDP أو الوصول المادي).
- افتح PowerShell وتحقق من وجود ملف تعريف عن طريق تشغيل:
Test-Path $PROFILE - إذا عاد
$True، افتح ملف الملف في دفتر الملاحظات:notepad $PROFILE - Comment out or remove any lines that generate visual output, print text banners, or modify text colors (such as third-party modules like
Oh-My-Posh) - حفظ الملف وإعادة تشغيل اتصال WinRM الخاص بك.
إصلاح 2: تغيير ترميز الإخراج إلى UTF-8
إن إجبار كل من المضيف والجهاز البعيد على استخدام ترميز UTF-8 يضمن عدم سوء تفسير الأحرف الخاصة أثناء الإرسال.
- على الجهاز المحلي، افتح PowerShell كمسؤول.
- قم بتشغيل الأوامر التالية لتحديد البيئة لاستخدام UTF-8:
$OutputEncoding = [System.Text.Encoding]::UTF8 - اتصل بالجهاز البعيد باستخدام جلسة WinRM الخاصة بك.
- قم بتنفيذ نفس الأمرين في جلسة الآلة البعيدة قبل تشغيل البرنامج أو الأمر الرئيسي.
الحل الثالث: قم بإزالة التحذيرات والخطأ وتدفقات الكلمات في الأوامر
إذا كانت أداة أو أمر معين داخل النص الخاص بك يخرج أحرف التنسيق الخام في خطوات الخطأ أو التحذير ، يمكنك إعادة توجيه أو قمع تلك التدفقات بشكل صريح.
- حدد الأمر الذي يسبب المشكلة داخل الكتلة البعيدة
- المرفق
6>null 7>nullأو معايير إعادة التوجيه لمنع التدفقات غير القياسية من تلوث مخرج XML. على سبيل المثال:Invoke-Command -ComputerName "RemoteServer" -ScriptBlock { Get-TargetData 3>$null 4>$null` } - بدلاً من ذلك، قم بتعيين متغيرات التفضيلات في بداية كتلة النص الخاص بك:
\(WarningAction = 'SilentlyContinue'\)VerbosePreference = 'SilentlyContinue'
إصلاح 4: إعادة تشغيل خدمة WinRM
حالة خدمة WinRM الفاسدة على كلا الجانبين يمكن أن تؤدي في بعض الأحيان إلى سوء السلوك في التحليل. إعادة تعيين الخدمة يزيل المخزن العازل التشغيلي.
- على الجهاز البعيد، افتح PowerShell كمسؤول.
- إعادة تشغيل خدمة إدارة ويندوز عن بعد عن طريق تشغيل:
Restart-Service WinRM -Force - على جهازك المحلي، افتح PowerShell كمسؤول وأعيد تشغيل خدمة WinRM المحلية أيضًا:
Restart-Service WinRM -Force
ERROR_WSMAN_ENUMERATE_WMI_INVALID_KEY | ERROR_WSMAN_INVALID_FRAGMENT_PATH_BLANK | ERROR_WSMAN_KERBEROS_IPADDRESS | ERROR_WSMAN_CLIENT_WORKGROUP_NO_KERBEROS | ERROR_WSMAN_INVALID_BATCH_SETTINGS_PARAMETER
قد يكون هناك بعض الأخطاء. Learn Microsoft