
نص برمجي PowerShell لإصلاح مشكلات قسم WinRE/الاسترداد - فشل تحديثات Windows KB5034441, KB5028997, CVE-2024-20666
سكربت PowerShell لنقل/إعادة إنشاء بيئة استرداد Windows (WinRE) بأمان إلى قسم استرداد جديد.
الكلمات المفتاحية: WinRE استرداد Windows قسم الاسترداد reagentc KB5034441 KB5028997 CVE-2024-20666 BitLocker إصلاح تحديث Windows تغيير حجم القسم GPT UEFI
يساعد هذا السكربت في إصلاح الأخطاء الشائعة لتحديثات Windows المتعلقة بقسم WinRE:
| 🇸🇦 العربية | 🇬🇧 English |
|---|---|
| قم بأخذ نسخة احتياطية كاملة للنظام قبل تشغيل هذا السكربت! يمكن لعمليات القرص/القسم أن تتسبب في فقدان بيانات لا رجعة فيه. | Take a full system backup before running this script! Disk/partition operations can cause irreversible data loss. |
Winre-Fix.ps1 هو سكربت PowerShell ينقل/يعيد إنشاء بيئة استرداد Windows (WinRE) بأمان إلى قسم استرداد جديد.
-WhatIf أولاً للمحاكاة.| المعامل | الوصف |
|---|---|
-WhatIf | محاكاة الخطوات دون إجراء تغييرات (وضع اختبار آمن) |
-Force | تخطي طلبات التأكيد + تجاوز تحذيرات المساحة الدنيا |
-Verbose | تفعيل الإخراج/التسجيل المفصل |
1. الفحص المسبق: هل توجد مساحة "غير مخصصة" على القرص 0؟
├─ لا يوجد → خطأ: "لم يتم العثور على مساحة غير مخصصة" → خروج
├─ < 1.2 جيجابايت → تحذير، يتطلب -Force
└─ >= 1.2 جيجابايت → حسنًا، متابعة
↓
2. طلب تأكيد النسخ الاحتياطي (يجب كتابة YES، يتم تخطيها مع -Force/-WhatIf)
↓
3. العثور على قسم الاسترداد (مسح جميع الأقسام حسب نوع GPT)
├─ لم يتم العثور → خطأ → خروج
└─ تم العثور → حسنًا، متابعة
↓
4. التحقق من القسم (يجب أن يكون الحجم < 10 جيجابايت)
├─ كبير جدًا → خطأ: "قد يكون محرك أقراص Windows!" → خروج
└─ حسنًا → متابعة
↓
5. تعطيل WinRE (reagentc /disable)
↓
6. حذف قسم الاسترداد القديم
↓
7. توسيع محرك الأقراص C: (يترك 1 جيجابايت احتياطيًا)
↓
8. إنشاء قسم استرداد جديد + تهيئة NTFS
↓
9. تعيين نوع GPT + السمة المخفية (diskpart)
↓
10. تفعيل WinRE (reagentc /enable)
↓
اكتمل!
# 1. المحاكاة (اختبار آمن)
.\Winre-Fix.ps1 -WhatIf -Verbose
# 2. التشغيل العادي (يطلب التأكيد)
.\Winre-Fix.ps1
# 3. التشغيل التلقائي (بدون تأكيد)
.\Winre-Fix.ps1 -Force
C:\temp\WinRE-Fix-Log.txtWinre-Fix.ps1 is a PowerShell script that safely moves/recreates the Windows Recovery Environment (WinRE) to a new Recovery partition.
-WhatIf first to simulate.| Parameter | Description |
|---|---|
-WhatIf | Simulate steps without making changes (safe test mode) |
-Force | Skip confirmation prompts + override minimum space warnings |
-Verbose | Enable detailed output/logging |
1. PRE-CHECK: Is there "Unallocated" space on Disk 0?
├─ None → ERROR: "No unallocated space found" → Exit
├─ < 1.2 GB → Warning, requires -Force
└─ >= 1.2 GB → OK, proceed
↓
2. Backup confirmation (must type YES, skipped with -Force/-WhatIf)
↓
3. Find Recovery partition (scans all partitions by GPT Type)
├─ Not found → ERROR → Exit
└─ Found → OK, proceed
↓
4. Partition validation (size must be < 10 GB)
├─ Too large → ERROR: "Might be Windows drive!" → Exit
└─ OK → proceed
↓
5. Disable WinRE (reagentc /disable)
↓
6. Delete old Recovery partition
↓
7. Extend C: drive (reserves 1 GB)
↓
8. Create new Recovery partition + format NTFS
↓
9. Set GPT Type + Hidden attribute (diskpart)
↓
10. Enable WinRE (reagentc /enable)
↓
COMPLETE!
# 1. Simulation (safe test)
.\Winre-Fix.ps1 -WhatIf -Verbose
# 2. Normal run (asks for confirmation)
.\Winre-Fix.ps1
# 3. Automatic run (no confirmation)
.\Winre-Fix.ps1 -Force
C:\temp\WinRE-Fix-Log.txtرخصة MIT - الاستخدام على مسؤوليتك الخاصة.
أنشئ لإدارة آمنة لقسم WinRE على أنظمة Windows.
| الفحص | الوصف |
|---|
| 🔒 المسؤول | السكربت يخرج إذا لم يتم تشغيله كمسؤول |
| 💾 المساحة غير المخصصة | يتحقق من وجود مساحة خالية على القرص قبل أي تغييرات |
| ✅ تأكيد النسخ الاحتياطي | يتطلب كتابة "YES" قبل المتابعة (يتم تخطيها مع -Force) |
| 🔍 فحص نوع GPT | يعثر على قسم الاسترداد بمسح جميع الأقسام لنوع GPT الصحيح |
| 📏 فحص معقولية الحجم | يجب أن يكون قسم الاسترداد < 10 جيجابايت (يمنع حذف Windows!) |
| 📝 تسجيل كامل | يتم تسجيل جميع العمليات في C:\temp\WinRE-Fix-Log.txt |
| 🛡️ فحص Winre.wim | يتحقق من وجود صورة الاسترداد قبل تفعيل WinRE |