لماذا يحدث ذلك؟
- Group Policy Bloat: The client machine belongs to an Active Directory domain with heavily customized or deeply nested Group Policy Objects (GPOs).
- MaxEnvelopeSizeKB Limit: WinRM has a default data transfer size limit (typically 500 KB). When a user connects, the target machine evaluates the user's group memberships and policies. If this security context data is too large, the WinRM service fails to parse the WS-Policy الهيكل
- MaxTokenSize Issue: رمز مصادقة كيربروس كبير جداً بسبب المستخدم الذي ينتمي إلى عدد كبير من مجموعات Active Directory.
إصلاحات خطوة بخطوة
اتبع هذه الحلول بالترتيب من أسرع إصلاح محلي إلى إصلاح مستوى المجال.
الحل 1: زيادة الحجم الأقصى للغلاف في WinRM
تحتاج إلى إخبار خدمة WinRM للسماح بحزم بيانات أكبر حتى تتمكن من معالجة هيكل السياسة المعقدة.
- اضغط على Start Menu ، نوع
cmdانقر على الزر الأيمن Command Prompt ، وتحديد Run as administrator. - اكتب الأمر التالي للتحقق من حجم المظروف الحالي:
winrm get winrm/config - ابحث عن
MaxEnvelopeSizeKBقيمة (المعيار الافتراضي عادة500) - قم بتشغيل هذه الأوامر لزيادة الحد إلى
8000كيلوبايت (8 ميجابايت) على كل من أجهزة المصدر والمقصد:winrm set winrm/config @{MaxEnvelopeSizeKB="8000"} - إعادة تشغيل خدمة WinRM لتطبيق التغييرات:
net stop winrm && net start winrm
الحل 2: زيادة MaxTokenSize من خلال سجل Windows
إذا كان حساب المستخدم الذي يقوم بتشغيل الأمر ينتمي إلى العديد من مجموعات الأمان ، يصبح رمز كيربيروس كبيرًا جدًا ليتمكن WinRM من التعامل معه.
- اضغط
Windows Key + R، نوعregedit, وأضرب Enter لفتح محرر السجل - انتقل إلى المسار التالي:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters(ملاحظة: إذاParametersالمفتاح غير موجود، انقر بزر الماوس الأيمنKerberos, اخترNew > Keyو أسميهParameters) - انقر بزر الماوس الأيمن داخل النافذة اليمنى، حدد
New > DWORD (32-bit) Value. - أسمي القيمة الجديدة
MaxTokenSize. - انقر مرتين
MaxTokenSize، تغيير Base إلى Decimal ، ووضع Value data إلى65535. - انقر OK وإعادة تشغيل جهاز الكمبيوتر الخاص بك.
الحل 3: استخدم الحسابات المحلية لتجاوز تعقيد GPO للمجال
إذا كنت تقوم بمهام إدارية أساسية ولا تستطيع تغيير GPO على مستوى النطاق، فإن استخدام حساب المسؤول المحلي بدلاً من حساب النطاق يتجاوز معالجة سياسة WS المعقدة بالكامل.
- افتح وحدة تحكم PowerShell
- قم بتعديل سلسلة الاتصال الخاصة بك لتمرير بيانات الاعتماد المحلية للمسؤول من جهاز الكمبيوتر المستهدف:
$cred = Get-Credential Enter-PSSession -ComputerName "Target_IP_Or_Name" -Credential $cred -Authentication Negotiate - قدم اسم المستخدم في النموذج:
TargetComputerName\LocalUsername.
الحل 4: تنظيف سياسات مجموعة Active Directory (لإدارة النطاقات)
إذا كنت مدير تكنولوجيا المعلومات ومستخدمين متعددين يواجهون هذه المشكلة، فإن السبب الرئيسي هو تجزئة GPO.
- افتح الباب Group Policy Management Console (GPMC) على جهاز تحكم المجال الخاص بك.
- مراجعة السياسات المطبقة على الوحدة التنظيمية المتأثرة.
- توحيد عدة منظمات عامة صغيرة إلى منظمة عامة واحدة منظمة بشكل جيد.
- إزالة تعاريف السياسة القديمة أو الزائدة من أجل تقليص الحمولة المفيدة لسياسة WS المقدمة إلى WinRM.
قد يكون هناك بعض الأخطاء. Learn Microsoft