پاکسازی درایو C برای افزایش فضای آزاد
DISM چیست؟
DISM مخفف Deployment Image Servicing and Management است؛ ابزار خطفرمانی داخلی ویندوز که برای نصب، حذف، پیکربندی و بهروزرسانی ویژگیها، بستهها، درایورها و تنظیمات سیستمعامل روی یک ایمیج ویندوز (آفلاین یا آنلاین) استفاده میشود. یکی از کاربردهای پرتکرار آن، مدیریت و پاکسازی چیزی به نام Component Store یا پوشهٔ WinSxS است.
پوشه WinSxS چیست و چرا حجیم میشود؟
هر بار که ویندوز آپدیت میشود (بهویژه در آپدیتهای تجمعی یا Cumulative Updates)، نسخههای قدیمی فایلهای سیستمی بهجای حذف کامل، در مسیر C:\Windows\WinSxS نگه داشته میشوند. این نگهداری عمدی است و به همین دلیل انجام میشود:
- امکان Uninstall کردن آپدیت در صورت ایجاد مشکل
- امکان بازگشت (Rollback) به نسخهٔ قبلی کامپوننتهای سیستمی
- پشتیبانی از سرویسدهی و تعمیر آفلاین ایمیج
اما با گذشت زمان، بهویژه بعد از چند ماه یا چند سال آپدیت پیوسته، این پوشه میتواند چند گیگابایت از فضای دیسک را اشغال کند.
تجزیه دستور به بخشهای مختلف
هر بخش از این دستور نقش مشخصی دارد:
| بخش دستور | وظیفه |
|---|---|
/online | عملیات را روی نسخهٔ در حال اجرای فعلی ویندوز انجام میدهد (نه روی یک فایل ایمیج آفلاین) |
/Cleanup-Image | پارامتر اصلی DISM برای انجام عملیات پاکسازی و سرویسدهی به ایمیج سیستم |
/StartComponentCleanup | کامپوننتهای منسوخ (Superseded) را از WinSxS حذف میکند |
/ResetBase | همهٔ نسخههای قدیمی هر کامپوننت را حذف کرده و وضعیت فعلی را بهعنوان مبنای دائمی ثبت میکند |
تفاوت اجرای StartComponentCleanup بهتنهایی و همراه با ResetBase
فقط /StartComponentCleanup
اجرای این سوییچ بهتنهایی مشابه کاری است که Task Scheduler بهصورت خودکار (با نام تسک StartComponentCleanup) هر ۳۰ روز یکبار انجام میدهد، با این تفاوت که:
- تسک خودکار حداکثر یک ساعت اجرا میشود و ممکن است ناقص بماند
- اجرای دستی این سوییچ محدودیت زمانی ندارد و کامل اجرا میشود
این حالت معمولاً بین ۲ تا ۴ گیگابایت فضا آزاد میکند، بدون اینکه امکان Uninstall آپدیتهای فعلی از بین برود.
همراه با /ResetBase
افزودن /ResetBase یک قدم فراتر میرود. تمام نسخههای جایگزینشدهٔ هر کامپوننت پاک میشوند و سیستم دیگر اطلاعاتی برای Rollback ندارد. طبق تحلیلهای فنی، این حالت میتواند ۱۰ تا ۲۰ درصد فضای بیشتری نسبت به حالت قبلی آزاد کند، اما:
از این لحظه به بعد، هیچیک از آپدیتهای نصبشده تا این تاریخ قابل Uninstall نیستند. فقط آپدیتهایی که بعد از اجرای این دستور نصب شوند، امکان حذف خواهند داشت.
آیا اجرای این دستور امن است؟
پاسخ کوتاه: بله، اما با شرط. چند نکتهٔ مهم قبل از اجرا:
- سیستم باید از نظر پایداری کاملاً مطمئن باشد، چون امکان بازگشت آپدیتها از بین میرود.
- پیش از پاکسازی، بهتر است با دستور زیر میزان واقعی فضای قابل بازیابی را بررسی کنید:
1
Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
این دستور بدون تغییر در سیستم، گزارشی از وضعیت Component Store و توصیه به پاکسازی یا عدم پاکسازی ارائه میدهد.
- در برخی گزارشهای کاربران در انجمن Microsoft Q&A، اجرای
/ResetBaseدر نسخهٔ Windows 11 25H2 گاهی باعث بروز خطای 0x80070306 هنگام نصب آپدیتهای تجمعی بعدی شده است. توصیه شده که این سوییچ عمدتاً برای ایمیجهای پایه یا Golden Template (پیش از استقرار گسترده) استفاده شود، نه روی سیستمهای در حال کار روزمره.
چه زمانی باید از /ResetBase استفاده کرد؟
- زمانی که فضای دیسک بحرانی است (بهویژه در SSDهای کمظرفیت) و روشهای ملایمتر جواب ندادهاند
- در محیطهای سازمانی، هنگام آمادهسازی یک ایمیج پایه (Golden Image) پیش از توزیع گسترده
- زمانی که از پایداری کامل سیستم پس از آخرین آپدیتها مطمئن هستید
جایگزین ملایمتر: اجرای بدون ResetBase یا با تأخیر
اگر نمیخواهید امکان Uninstall آپدیتها را کاملاً از بین ببرید، دو گزینه دارید:
- فقط دستور زیر را اجرا کنید:
1
Dism.exe /online /Cleanup-Image /StartComponentCleanup
- اجرای
/ResetBaseرا به فرآیند نگهداری خودکار (Automatic Maintenance) ویندوز موکول کنید تا در پسزمینه و بدون فشار فوری روی سیستم اجرا شود:1
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase /Defer
این دستور و توضیح سوییچ
/Deferدر مستندات رسمی Microsoft Learn ذکر شده است.
جمعبندی
با اجرای دستور زیر میتوانید فایلهای اضافه را از درایو C خود پاک کنید تا کمی فضا آزاد شود
1
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase