خطأ في ويندوز: فشل في مصادقة عميل WinRM
وصف الخطأ
يحدث هذا الخطأ عندما يحاول عميل Windows Remote Management (WinRM) إنشاء اتصال عن بعد باستخدام طريقة المصادقة التي تتطلب بيانات اعتماد المستخدم الكاملة ، ولكن تكوين النظام أو تنفيذ الأوامر يفشل في توفير كل من اسم المستخدم وكلمة المرور. يحدث هذا في كثير من الأحيان خلال جلسات PowerShell عن بعد أو البرامج التلقائية أو مهام إدارة الخادم. حتى لو كنت تعتقد أنك قد مررت بيانات الاعتماد ، فإن طبقة WinRM الأساسية ترفض الطلب لأنها ترى كائن معتمد فارغ أو جزئي ، أو سياسة المصادقة الحالية تحد من تمرير تلك بيانات الاعتماد إلى هدف بعيد.
إصلاحات خطوة بخطوة
إصلاح 1: تمرير بيانات الاعتماد بصورة صريحة باستخدام PowerShell
إذا كنت تقوم بتشغيل برنامج نصي أو أمر، لا تعتمد على بيانات اعتماد الدخول الحالية الخاصة بالجلسة التي تمر تلقائيًا دون المعايير المناسبة.
- افتح PowerShell كمدير
- قم بتخزين بيانات الاعتماد الخاصة بك في متغير بتشغيل:
$cred = Get-Credential - أدخل اسم المستخدم المستهدف (على سبيل المثال،
Domain\UsernameأوComputerName\Username) وكلمة المرور في الإشارة. - قم بتشغيل الأوامر عن بُعد أثناء إرفاق متغير المواصفات بصورة صريحة:
Invoke-Command -ComputerName "TARGET_COMPUTER" -ScriptBlock { Get-Process } -Credential $cred
إصلاح 2: تمكين وتكوين مضيفات WinRM العميل الموثوق بها
إذا كنت تتصل بكمبيوتر مجموعة عمل أو خادم خارج نطاق Active Directory المحلي الخاص بك، فإن جهاز العميل سوف يرفض إرسال بيانات الاعتماد ما لم يكن الهدف موثوق به صراحة.
- انقر بزر الماوس الأيمن Start الزر و الاختيار Terminal (Admin) أو PowerShell (Admin).
- عرض قائمة المضيفات الموثوق بها حالياً بتنفيذ:
Get-Item WSMan:\localhost\Client\TrustedHosts - إضافة جهاز الكمبيوتر البعيد الخاص بك إلى القائمة الموثوق بها:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "TARGET_COMPUTER_IP_OR_NAME" -Force(بدلاً من ذلك، استخدم `to trust all computers, though this is less secure:مجموعة العنصر WSMan:\localhost\Client\TrustedHosts -Value " " - القوة `) - إعادة تشغيل خدمة WinRM لتطبيق التغييرات:
Restart-Service WinRM
إصلاح 3: تمكين المصادقة الأساسية في إعدادات WinRM
إذا كان النص أو التطبيق الخاص بك يعتمد على المصادقة الأساسية بدلاً من كيربيروس، يجب أن يكون كلاً من العميل والخادم تمكين المصادقة الأساسية بشكل صريح.
- افتح PowerShell (Admin) على جهاز الكمبيوتر المحلي الخاص بك.
- تحقق ما إذا كان تم تمكين المصادقة الأساسية للعميل:
Get-Item WSMan:\localhost\Client\Auth\Basic - إذا تم تعيينها على false، قم بتمكينها عن طريق تشغيل:
Set-Item WSMan:\localhost\Client\Auth\Basic -Value $true - اتصل بخادمك البعيد و قم بتشغيل الأوامر المقابلة للتأكد من أن الخادم يسمح بذلك:
Set-Item WSMan:\localhost\Service\Auth\Basic -Value $true - إعادة تشغيل الخدمة:
Restart-Service WinRM
إصلاح 4: تعديل سياسة LocalAccountTokenFilter في السجل
عند الاتصال بالجهاز البعيد باستخدام حساب المسؤول المحلي بدلاً من حساب مسؤول النطاق، يقوم نظام التحكم في حساب المستخدم (UAC) بإزالة الامتيازات الإدارية عند الاتصال عن بعد. يجب عليك تعطيل هذا التصفية على جهاز الهدف.
- قم بتسجيل الدخول Target Remote Machine.
- اضغط Windows Key + R ، نوع
regeditو اضغط Enter لفتح محرر السجل - انتقل إلى المسار التالي:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System - انقر بزر الماوس الأيمن على المساحة الفارغة في النافذة اليمنى، حدد New -> DWORD (32-bit) Value.
- اسم القيمة الجديدة:
LocalAccountTokenFilterPolicy - انقر مرتين
LocalAccountTokenFilterPolicyو تغييرها Value data إلى1. - انقر OK وإعادة تشغيل الكمبيوتر البعيد لتطبيق التغييرات
قد يكون هناك بعض الأخطاء. Learn Microsoft