وصف الخطأ
This error occurs when you attempt to establish a remote Windows PowerShell or WinRM (Windows Remote Management) session using a specific certificate thumbprint for authentication, but your command or configuration fails to explicitly instruct the WinRM client to actually transmit that client certificate.
افتراضيًا، يتطلب WinRM إشارة برمجية محددة تسمى WSManFlagUseClientCertificate (أو المعيار المكافئ له في كمدلتات PowerShell) لتكون نشطة كلما تم توفير بصمة إبهام الشهادة. بدون هذا العلم ، يكتشف عميل WinRM تناقضًا: لقد أخبرته الذي الشهادة لاستخدامها، ولكنك لم تعطيها الإذن لاستخدام مصادقة شهادة العميل.
إصلاحات خطوة بخطوة
الطريقة 1: إضافة -CertificateThumbprint Parameter في باورشل
إذا كنت تستخدم New-PSSession أو Enter-PSSession cmdlets، يجب عليك التأكد من أنك تستخدم تكوين المعلم الصحيح الذي يجبر علامة شهادة العميل على التنشيط.
- Open باستخدام PowerShell كمسؤول
- Modify أوامر الاتصال الخاصة بك لتشمل كل من
-CertificateThumbprintو...-UseSSLالمعلمات - Run الأوامر باستخدام هذا الهيكل الدقيق:
$thumbprint = "YOUR_CERTIFICATE_THUMBPRINT_HERE" New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint $thumbprint -UseSSLملاحظة: تحديد
-CertificateThumbprintيطلق بشكل أصلي إشارات شهادة العميل WSMan المطلوبة تحت الغطاء في إصدارات PowerShell الحديثة.
طريقة 2: تكوين خيارات جلسة wsman حصرياً
إذا كنت تكتب سيناريو باستخدام New-WSManSessionOption ، يجب عليك تحديد آلية المصادقة بشكل صريح حتى يتم تمرير العلامة إلى النظام الفرعي WinRM.
- Open نص PowerShell الخاص بك أو وحدة التحكم.
- Create كائن خيار جلسة يحدد مصادقة شهادة العميل:
$sessionOptions = New-WSManSessionOption -ClientCertificate - Pass هذا الخيار يضعه في أمر الاتصال الخاص بك باستخدام
-SessionOptionالمعلم:New-PSSession -ComputerName "TARGET_COMPUTER_NAME" -CertificateThumbprint "YOUR_CERTIFICATE_THUMBPRINT_HERE" -SessionOption $sessionOptions -UseSSL
الطريقة 3: ربط الشهادة إلى عميل WinRM (سياسة الكمبيوتر المحلي)
إذا استمر الخطأ ، فقد لا يتم تكوين عميل WinRM المحلي للسماح أو تعيين شهادات العميل بشكل صحيح.
- Click قائمة البدء، اكتب
cmdانقر على الزر الأيمن Command Prompt ، وتحديد Run as administrator. - Enable مصادقة شهادة العميل في تكوين WinRM المحلي عن طريق تشغيل:
winrm set winrm/config/client/auth @{Certificate="true"} - Verify تغيير التكوين عن طريق التشغيل:
winrm get winrm/config/client/auth - Ensure هذا
Certificate = trueيظهر في قائمة الإخراج.
الطريقة 4: التحقق من موقع شهادة الجذر والعميل الموثوق بها
لن تتمكن WinRM من تمرير علامة الشهادة بنجاح إذا لم تكن الشهادة موجودة في المخزن الشخصي الصحيح أو إذا لم تكن موثوقة من قبل نظام التشغيل.
- Press
Windows Key + R، نوعcertlm.mscو اضغط Enter لفتح مدير شهادة الآلة المحلية. - Navigate إلى
Personal->Certificatesوتأكد من أن شهادة العميل موجودة هنا وتحتوي على مفتاح خاص. - Navigate إلى
Trusted Root Certification Authorities->Certificatesوتأكد من أن الشهادة الجذرية التي وقعت الشهادة العميل المدرجة هنا. - Restart خدمة WinRM لتطبيق تغييرات النظام عن طريق تشغيل هذه الأوامر في برنامج الإرشادات الخاص بك:
net stop winrm && net start winrm
قد يكون هناك بعض الأخطاء. Learn Microsoft