أداة في Windows قد تنقذك من البرامج القديمة والثغرات.. استخدمها بأمر واحد
جميعنا تقريبًا يفعل الشيء نفسه بعد تثبيت Windows: ننزل المتصفح وبرامج الضغط والتحميل والتصميم وأدوات العمل أو البرمجة، ثم نبدأ باستخدام الكمبيوتر وننسى أمرًا مهمًا: هذه البرامج تحتاج إلى تحديث أيضًا.
قد تفتح Windows Update وتجد أن النظام محدث بالكامل، لكن هذا لا يعني أن كل التطبيقات الموجودة على الكمبيوتر تعمل بآخر إصدار. كثير من برامج سطح المكتب الخارجية تعتمد على نظام التحديث الخاص بها، وبعضها لا يعرض تنبيهًا واضحًا عندما يتوفر إصدار جديد.
بعد عدة أشهر قد تجد نفسك تستخدم نسخة قديمة دون أن تعرف. النتيجة ليست فقط تأخرك في الحصول على الميزات الجديدة؛ فقد تحتوي الإصدارات الجديدة أيضًا على إصلاحات للأخطاء ومشاكل التوافق وتحديثات أمنية وسد لثغرات اكتشفها المطورون.
بدل فتح كل برنامج على حدة والبحث عن زر Update، توجد في Windows أداة من Microsoft تسمى WinGet تستطيع من خلالها فحص عدد كبير من التطبيقات الموجودة على جهازك ثم تحديث التطبيقات التي تتوفر لها إصدارات أحدث من مكان واحد.
لماذا يجب تحديث برامج Windows باستمرار؟
المشكلة أن المستخدم غالبًا ينتبه إلى تحديث Windows نفسه أكثر من تحديث البرامج التي قام بتثبيتها بعد ذلك.
بعض التطبيقات تحدث نفسها تلقائيًا، وبعضها يطلب منك الموافقة على التحديث، بينما قد يستمر برنامج آخر بالعمل لأشهر دون أن تلاحظ وجود إصدار أحدث.
استخدام إصدار قديم قد يؤدي إلى واحد أو أكثر من الأمور التالية:
- عدم الحصول على الميزات الجديدة.
- استمرار أخطاء تم إصلاحها في إصدار أحدث.
- فقدان تحديثات أمنية وإصلاحات للثغرات عند توفرها.
- ظهور مشاكل توافق مع Windows أو مع برامج أخرى بمرور الوقت.
- الاضطرار لاحقًا إلى الانتقال بين عدة إصدارات دفعة واحدة.
لذلك من المفيد إجراء فحص من وقت إلى آخر لمعرفة البرامج التي توجد لها تحديثات بدل الاعتماد فقط على أن كل تطبيق سيخبرك بنفسه.
ما هي أداة WinGet وما فائدتها؟
WinGet هي واجهة سطر أوامر لـWindows Package Manager من Microsoft. تسمح بالبحث عن التطبيقات وتثبيتها وعرض البرامج الموجودة على الكمبيوتر وترقيتها وإزالتها وإدارة مصادر الحزم.
الميزة المهمة هنا أن WinGet لا يقتصر على التطبيقات التي قمت بتثبيتها من خلاله. يستطيع أيضًا التعرف على عدد من البرامج التي ثبتها المستخدم بوسائل أخرى، ثم مطابقتها مع الحزم الموجودة في مصادره.
وهذا يعني أنك قد تكون ثبتت برنامجًا بالطريقة التقليدية من موقعه الرسمي، ومع ذلك يستطيع WinGet التعرف عليه وإخبارك بأن إصدارًا أحدث متاح.
كيف تحدّث برامج Windows باستخدام WinGet؟
سنقوم بالعملية بالترتيب نفسه الذي أستخدمه على الجهاز: نتأكد أولًا أن WinGet يعمل، ثم نحدث المصادر، وبعدها نفحص البرامج قبل تنفيذ أي تحديث.
قبل البدء: تأكد أن WinGet موجود على جهازك
افتح Windows Terminal أو PowerShell واكتب:
winget --version
إذا ظهر لك رقم الإصدار، فهذا يعني أن الأمر متوفر ويعمل على الجهاز.
وإذا أردت معلومات أكثر عن WinGet والبيئة التي يعمل عليها استخدم:
winget --info
لعمليات الفحص البسيطة لا تحتاج عادة إلى فتح Terminal كمسؤول. بعض مثبتات البرامج قد تطلب صلاحيات Administrator أثناء التحديث عند الحاجة.
1. حدّث مصادر WinGet
قبل البحث عن الإصدارات الجديدة، يمكن تحديث بيانات المصادر التي يعتمد عليها WinGet:
winget source update
هذا الأمر لا يقوم بتحديث التطبيقات. وظيفته تحديث بيانات مصادر WinGet حتى يبحث باستخدام أحدث معلومات متاحة لديه.
2. اعرف البرامج التي لديها تحديثات
الآن استخدم:
winget list --upgrade-available
سيعرض WinGet التطبيقات التي استطاع التعرف عليها والتي وجد لها إصدارات أحدث.
ويمكنك أيضًا تشغيل:
winget upgrade
عند تشغيل winget upgrade دون تحديد تطبيق، يعرض WinGet الترقيات المتاحة قبل أن تبدأ بتحديث الجميع.
ويمكن كتابة:
winget update
لأن update هو اسم بديل لأمر upgrade في WinGet.
تجربتنا: WinGet وجد 10 تحديثات على جهازنا
جربت الأمر بنفسي على أحد أجهزتي:
winget list --upgrade-available
والنتيجة كانت وجود 10 تطبيقات لديها تحديثات متاحة، رغم أن الجهاز والبرامج كانت تستخدم بشكل طبيعي ولم تكن جميع هذه التحديثات واضحة أثناء الاستخدام اليومي.
| البرنامج | الإصدار الموجود | الإصدار المتاح |
|---|---|---|
| Antigravity | 2.5.0 | 2.6.0 |
| CapCut | 9.1.0.3879 | 9.2.0.3931 |
| Claude | 1.24012.9.0 | 1.25927.0 |
| Docker Desktop | 4.83.0 | 4.85.0 |
| FFmpeg | 8.1.2 | 9.0 |
| GitHub CLI | 2.96.0 | 2.97.0 |
| Internet Download Manager | 6.43.7 | 6.43.8 |
| Python 3.13 | 3.13.14 | 3.13.15 |
| uv | 0.11.30 | 0.12.2 |
| Windows Subsystem for Linux | 2.7.10.0 | 2.7.11 |
كيف تقرأ نتيجة WinGet؟
إذا كنت تستخدم الأداة لأول مرة، لا تحتاج إلى فهم كل التفاصيل. ركز على هذه الأعمدة:
- Name: اسم البرنامج.
- Id: المعرف الخاص بالحزمة.
- Version: الإصدار الموجود على الكمبيوتر.
- Available: الإصدار الأحدث المتاح.
- Source: المصدر الذي وجد WinGet الحزمة من خلاله.
مثلًا عندما ترى:
Python 3.13.14 → 3.13.15
فهذا يعني أن الإصدار الموجود لديك هو 3.13.14 بينما وجد WinGet إصدار 3.13.15.
3. حدّث جميع البرامج دفعة واحدة
بعد مراجعة القائمة ومعرفة التطبيقات التي ستتغير، يأتي الأمر الأساسي:
winget upgrade --all
يبحث Windows Package Manager عن التطبيقات المثبتة التي توجد لها ترقيات متاحة ويحاول تثبيت الإصدارات الجديدة.
هنا تظهر الفائدة الحقيقية لـWinGet: بدل فتح Chrome ثم Docker ثم Python ثم باقي التطبيقات واحدًا واحدًا، تتم إدارة التحديثات من نافذة واحدة.
4. ماذا تفعل إذا ظهر Version Unknown؟
في تجربتي ظهرت أيضًا رسالة تخبرني بوجود حزمة لا يستطيع WinGet تحديد رقم إصدارها:
1 package(s) have version numbers that cannot be determined. Use --include-unknown to see all results.
كلمة Unknown لا تعني بالضرورة أن البرنامج تالف. تعني أن WinGet استطاع التعرف على الحزمة لكنه لم يتمكن من تحديد رقم إصدارها الحالي بالطريقة المعتادة.
لمشاهدة هذه الحزم أيضًا:
winget list --upgrade-available --include-unknown
وإذا كنت تريد تضمينها في عملية التحديث:
winget upgrade --all --include-unknown
5. الأمر الكامل لتقليل التوقف أثناء التحديث
بعد مراجعة القائمة، يمكن استخدام الأمر التالي:
winget upgrade --all --include-unknown --accept-source-agreements --accept-package-agreements
يتكون الأمر من أربعة أجزاء مهمة:
- --all: محاولة ترقية جميع التطبيقات التي تتوفر لها تحديثات.
- --include-unknown: تضمين الحزم التي لا يستطيع WinGet معرفة إصدارها الحالي.
- --accept-source-agreements: قبول اتفاقيات المصدر دون توقف لطلب الموافقة.
- --accept-package-agreements: قبول اتفاقيات الحزم دون توقف لطلب الموافقة.
الخياران الأخيران مفيدان عندما تقوم بتحديث عدد من التطبيقات دفعة واحدة، لأن بعض الحزم أو المصادر قد تطلب قبول اتفاقيات قبل المتابعة.
تجربة عملية أثناء تنفيذ التحديثات على جهازنا
الصورة التالية ليست مثالًا مولدًا أو لقطة من الإنترنت؛ إنها من جهازنا أثناء تشغيل WinGet وتنفيذ تحديثات فعلية.
وهذه النقطة مهمة: WinGet لا يعرض لك فقط قائمة نظرية، بل يشغّل مثبتات التطبيقات المناسبة ويتعامل مع عملية الترقية لكل حزمة حسب الطريقة التي يوفرها ناشرها.
6. تأكد من نجاح العملية بعد الانتهاء
بعد انتهاء التحديثات أعد تشغيل:
winget list --upgrade-available
إذا اختفت التطبيقات السابقة من القائمة، فهذا يعني أن WinGet لم يعد يرى لها ترقيات متاحة في المصادر الحالية.
أما إذا بقي تطبيق معين، فلا يعني ذلك أن كل العملية فشلت. قد تكون المشكلة خاصة بمثبت ذلك التطبيق أو أن البرنامج يحتاج إلى إغلاق أو تدخل يدوي.
أوامر WinGet مفيدة للمستخدم المتقدم
تحديث الجميع هو الاستخدام الأكثر وضوحًا، لكن WinGet يسمح أيضًا بالتحكم في برنامج واحد أو البحث عن معرف الحزمة أو تشخيص مشاكل المصادر.
تحديث برنامج واحد فقط
إذا كنت تريد تحديث برنامج معين دون لمس بقية التطبيقات:
winget upgrade --id Google.Chrome -e
استخدام Package ID أكثر دقة من الاعتماد على اسم التطبيق فقط، بينما يطلب الخيار -e مطابقة دقيقة.
كيف تجد Package ID؟
ابحث عن البرنامج أولًا:
winget search chrome
ثم استخدم القيمة الموجودة في عمود Id.
عرض التطبيقات المثبتة على الكمبيوتر
winget list
يعرض هذا الأمر التطبيقات التي يستطيع WinGet التعرف عليها، بما في ذلك تطبيقات تم تثبيتها بطرق أخرى وليس فقط باستخدام WinGet.
استخدام --force عند فشل تحديث برنامج
إذا فشل تحديث تطبيق معين، لا تبدأ مباشرة باستخدام Force. اقرأ الخطأ أولًا وحاول معرفة السبب.
عندما تعرف الحزمة ولديك سبب واضح:
winget upgrade --id Google.Chrome --force
إصلاح مشاكل مصادر WinGet
إذا أصبحت النتائج قديمة أو ظهرت مشكلة في المصادر، ابدأ بـ:
winget source update
وإذا كانت هناك مشكلة حقيقية في تكوين المصادر ويوجد سبب لإعادة ضبطها:
winget source reset --force
وبعدها:
winget source update
ما الذي يجب معرفته قبل الاعتماد على WinGet؟
WinGet لا يستطيع تحديث كل برنامج بدون استثناء
وجود تطبيق على جهازك لا يعني أن WinGet سيتمكن بالضرورة من تحديثه. يجب أولًا أن يستطيع التعرف على التطبيق ومطابقته مع حزمة متاحة في المصادر.
لذلك الأدق أن نقول إن WinGet يستطيع تحديث عدد كبير من تطبيقات Windows دفعة واحدة وليس كل تطبيق موجود على الكمبيوتر بلا استثناء.
بعض التطبيقات قد تكون مثبتة على إصدار معين
WinGet يدعم ميزة Pin التي يمكن استخدامها للتحكم في ترقية بعض الحزم. التطبيق الذي لديه Pin مناسب قد لا يدخل في عملية --all بالطريقة المعتادة.
يوجد خيار:
--include-pinned
لكن لا أنصح بإضافته إلى أمر التحديث الجماعي دون معرفة سبب تثبيت إصدار التطبيق أصلًا.
WinGet لا يغني عن Windows Update
بعد تحديث التطبيقات باستخدام WinGet، استمر في فتح: الإعدادات ← Windows Update وتثبيت تحديثات Windows نفسها.
- Windows Update: تحديث Windows ومكونات النظام والتحديثات التي يتم توزيعها من خلاله.
- WinGet: إدارة التطبيقات والحزم التي يستطيع Windows Package Manager التعرف عليها.
استخدام الاثنين أفضل من افتراض أن تحديث Windows وحده يعني أن جميع برامج الطرف الثالث أصبحت محدثة.
المطور يجب أن يراجع التحديثات الكبيرة قبل تثبيتها
إذا كان الكمبيوتر يستخدم للبرمجة أو العمل، لا تتعامل مع كل الترقيات بالطريقة نفسها.
في تجربتنا مثلًا ظهر:
FFmpeg 8.1.2 → 9.0
الانتقال إلى رقم إصدار رئيسي جديد يستحق الانتباه أكثر من تحديث صغير، خصوصًا عندما تعتمد مشاريعك أو سكربتاتك على أداة أو إصدار معين.
وهنا يكون WinGet مفيدًا للمبتدئ والمحترف معًا: المستخدم العادي يستفيد من سهولة التحديث، بينما يستطيع المحترف استخدامه أولًا لجرد الإصدارات القديمة ومراجعة ما سيتغير قبل تنفيذ الترقية.
ثلاثة أوامر تكفي لمعظم المستخدمين
إذا قرأت الشرح وفهمت ما يقوم به WinGet، فهذه هي الأوامر التي يمكنك الاحتفاظ بها واستخدامها من وقت إلى آخر:
winget source update winget list --upgrade-available winget upgrade --all --include-unknown --accept-source-agreements --accept-package-agreements
-
تحديث المصادر
للحصول على أحدث بيانات الحزم. -
فحص التحديثات
لمعرفة ما الذي سيتغير قبل تثبيت أي شيء. -
تنفيذ التحديثات
بعد مراجعة القائمة والتأكد منها.
يمكنك إجراء هذا الفحص من وقت إلى آخر، خصوصًا إذا كنت تستخدم الكثير من البرامج ولا تريد الاعتماد على نظام التحديث الخاص بكل تطبيق.
الأسئلة الشائعة
هل Windows Update يحدث جميع البرامج المثبتة؟
لا ينبغي اعتبار Windows Update مدير تحديث لجميع تطبيقات سطح المكتب الخارجية. بعض البرامج لها آلية تحديث خاصة بها، بينما يستطيع WinGet إدارة عدد كبير من التطبيقات التي يتعرف عليها ويجد لها حزمًا مناسبة.
ما الأمر الذي يكشف البرامج التي تحتاج إلى تحديث؟
استخدم winget list --upgrade-available لعرض التطبيقات التي وجد WinGet ترقيات متاحة لها.
ما أمر تحديث جميع برامج Windows باستخدام WinGet؟
الأمر الأساسي هو winget upgrade --all. ويمكن إضافة --include-unknown لتضمين الحزم التي لا يستطيع WinGet تحديد إصدارها الحالي.
هل winget update يختلف عن winget upgrade؟
لا في هذا السياق. Microsoft توثق update كاسم بديل لأمر upgrade.
هل تحديث البرامج يساعد على حماية الكمبيوتر؟
يمكن أن تتضمن تحديثات البرامج إصلاحات أمنية وسدًا لثغرات، لكن ليست كل ترقية تحديثًا أمنيًا؛ قد تتضمن أيضًا ميزات جديدة وإصلاح أخطاء وتحسين الأداء والتوافق.
هل WinGet يحدث كل برنامج موجود على الكمبيوتر؟
لا. يستطيع تحديث البرامج التي يتعرف عليها ويجد لها حزمة وترقية مناسبة في المصادر التي يستخدمها، لذلك قد تبقى تطبيقات تحتاج إلى التحديث بطريقة أخرى.
هل يجب تشغيل PowerShell كمسؤول؟
ليس لجميع أوامر WinGet. بعض التطبيقات قد تطلب رفع الصلاحيات أثناء التثبيت أو التحديث، وبعض أوامر إدارة المصادر مثل إعادة الضبط تحتاج إلى Administrator.
هل WinGet بديل عن Windows Update؟
لا. استمر في استخدام Windows Update لتحديث Windows نفسه، واستخدم WinGet لإدارة التطبيقات والحزم التي يستطيع التعرف عليها.
الانضمام إلى المحادثة