طبیعی است که سیستم عاملسیستم عامل چیست، انواع آن چیست؟ ها هم دچار مشکل می شوند و برخی از فایل هایشان دچار خرابی می شوند و نمی توانند عملکرد خوبی از خودشان نشان دهند. ابزارهای داخلی مختلفی برای اسکن کردن و رفع کردن این مشکلات در ویندوز وجود دارد. یکی از این ابزارهایی که می تواند به شما کمک کند، دستور SFC و DISM است.
معمولا مشکلاتی از بابت آسیب دیدن یا گم شدن فایل ها در ویندوز وجود دارد که این کار به کمک دستورات DISM و SFC می تواند حل شود. این دستورات در ویندوز ۱۰،۱۱ و ۷، ۸ و ۸٫۱ استفاده می شود.
اگر با خراب شدن و مشکلاتی در ویندوزتان مواجه شدید به جای آن که سریعا اقدام به حذف و نصب دوباره ویندوز کنید، توصیه ما این است که ابتدا از این دستورات استفاده کنید.
اگر شما از ویندوز های قبل از نسخه ۱۰ را استفاده می کنید، دستور SFC برایتان پاسخگو خواهد بود و اگر از ویندوز ۱۰ یا ۱۱ استفاده می کنید، باید از دستورات (Deployment Image Servicing and Managemen) DSMI استفاده کنید. اما چگونه باید از این دستورات استفاده کرد؟ در ادامه مقاله به شما آموزش می دهیم که چگونه از این دستورات برای حل مشکلاتی که در ویندوز وجود دارد، استفاده کنید. همراهمان باشید.
آموزش دستور DISM برای عیب یابی و تعمیر در ویندوز ۱۰ و ۱۱
برای آنکه بتوانید از این دستور استفاده کنید، باید ابتدا از طریق دسترسی Administrator یک ترمینال پاورشل یا CMD را باز کنید.
برای آنکه مشکل ویندوز شما حل شود، باید ابتدا عیب یابی انجام شود. دستوری که در زیر برایتان آورده ایم، به شما کمک می کند تا بتوانید مشکلی که در ویندوز به وجود آمده است را شناسایی کنید:
DISM /Online /Cleanup-Image /CheckHealth
به کمک این دستور می توانید به راحتی تمامی خطاهایی که در ویندوز برایتان مشکل ایجاد کرده است را بررسی کنید. در حقیقت پس از آن که این دستور را اجرا کردید، DISM لاگ های ارور ها را بررسی می کند و فایل هایی که تخریب شده اند را پیدا می کند.
البته شما می توانید از پارامتر Scanhealth هم برای بررسی مشکلات ویندوزتان استفاده کنید. برای استفاده از این پارامتر کافی است که از کد زیر استفاده کنید:
DISM /Online /Cleanup-Image /Scanhealth
پارامتر Scanhealth تنها در بین فایل های لاگ دست به جستجو نمیزند، بلکه تمامی فایل های ویندوز را چک می کند و هر خطایی که در ویندوز باشد را پیدا می کند. برای آن که این دستور اجرا شود، نیاز است که کمی صبوری به خرج دهید؛ از آن جایی که این دستور تمام فایل ها را بررسی می کند، به همین دلیل اجرای کامل آن ۱۰ الی ۱۵ دقیقه زمان نیاز است.
به همین راحتی شما می توانید عیب یابی ویندوز خودتان را انجام دهید. صبور باشید، داستان به اینجا ختم نمی شود؛ چرا که باید مشکلاتی که شناسایی شده اند را تعمیر کنیم.
برای آن که مشکلات را به کمک DISM رفع کنید، نیاز است تا از پارامتر Restorehealth استفاده کنید. برای آنکه از این دستور استفاده کنید، از کد زیر استفاده کنید:
پس از آن که این دستور را وارد کردید، اگر ویندوز شما شروع به ریکاوری کرد، نگران نباشید؛ چرا که فایل های سالم را جایگزین فایل های تخریب شده می کند.
نکته ای که توصیه می کنیم حتما به آن توجه داشته باشید، این است که حتما سرویس ویندوز آپدیت خودتان را روشن کنید و اینترنت در دسترس باشد؛ اگر این نکات را رعایت نکنید، عملیات شما ناموفق خواهد بود.
موضوع دیگری که می خواهیم به شما یادآور شویم، این است که مدت زمان تعمیر مشکلات ویندوز، به حجم و تعداد فایل های مشکل دار وابسته است. در صورتی که روی نوار پیشرفت مشاهده کردید که روی درصد خاصی متوقف شده است، صبر داشته باشید تا فرایند تکمیل شود؛ در صورتی که DISM شما به هر دلیل به مشکلی برخورد کند، سیستم با ارائه یک خطا به شما اعلام می کند.
مطالبی که در ادامه برایتان می آوریم، به شما کمک می کند در صورتی که به اینترنت هم دسترسی نداشته باشید، منابع مورد نیاز برای DISM را از منابع لوکال تامین کنید.
تغییر منبع دستور DISM از اینترنت به فایل های چندرسانه ای
هرچه از مزیت ها و قابلیت های DISM بگوییم، کم گفته ایم. برای مثال یکی از قابلیت هایی که DISM دارد، این است که می تواند فایل ها را از منابع مختلف پیدا کند و کار تعمیر ویندوز را انجام دهد. قالب های مختلف فایل ها مانند DVD، ISO هم برای DISM قابل خواندن هستند.
اگر شما هم می خواهید که DISM به جای آن که منابع را از اینترنت بیابد، از منابع دیگر استفاده کند، می توانید از پارامتر Source استفاده کنید.
برای وارد کردن DISM به کمک RestoreHealth باید از دستور زیر استفاده کنید:
DISM /Online /Cleanup-Image /Restorehealth /Source:G:\Sources\install.esd
برای آن که منبع مورد نیاز را برای دستور DISM تعیین کنید، باید آدرس فایل Install.esd یا Install.win یا Install.wsm را که فایل های اصلی نصب ویندوز هستند را وارد کنید و حتما توجه داشته باشید که در هر مدیا معمولا یکی از سه فایل وجود دارد.
برای آن که فایل های از بین رفته را از منبع لوکال بازگردانی کنید، باید نسخه ویندوزی که استفاده می کنید، به صورت کامل با نسخه مدیا (فایل چندرسانه ای) یکسان باشد. فرض کنید که نسخه ویندوز شماProبا شماره ۱۵۰۴ است، نسخه فایل چند رسانه ای شما نیز باید همان باشد.
در نظر داشته باشید که این دستوری که برایتان آورده ایم، تنها برای معرفی کردن منابع خاص کاربرد دارد، در صورتی که DISM صلاح ببیند، به سراغ منابع دیگر می رود و اگر شما از این موضوع راضی نیستید و نمی خواهید که دستور DISM به سراغ منابع دیگر برود، می توانید از دستور limitaccess در پایان دستور استفاده کنید؛ یعنی به شکل زیر:
DISM /Online /Cleanup-Image /Restorehealth /Source:G:\Sources\install.esd /Limitaccess
تا اینجای مقاله نکته ای در رابطه با دستور DISM ناگفته نمانده است. اما همانطور که گفتیم، این دستور برای ویندوز های ۱۰ و ۱۱ است. در صورتی که شما از نسخه های قبل از ۱۰ ویندوز استفاده می کنید، نیاز به استفاده از دستور SFC دارید.
استفاده از دستور SFC برای عیب یابی و تعمیر ویندوز ۷،۸ و ۸٫۱
SFC کوتاه شده عبارت System File Checker است. کاربردی که این دستور دارد، این است که فایل های سیستمی که خراب شده اند یا گم شده اند را با فایل های سیستمی WRP جایگزین کنند.
برای استفاده از این دستور نیاز است که اول Command Prompt را اجرا کنید. که می توانید هم به صورت Evelated و هم به صورت Run As Administrator اجرا کنید. پس از اجرای Command Prompt باید دستور SFC را همراه با پارامتر Scannow وارد کنید تا این دستور شروع کند به بررسی کردن فایل های سیستمی. البته توجه داشته باشید که این فرایند زمان زیادی را از شما می گیرد.
پیام های خروجی از دستور sfc /scannow پس از آن که فرایندی که گفتیم به درستی پیش رفت، ویندوز شما را از نتیجه فرایند مطلع می کند. در ادامه لیستی از پیام هایی که ممکن است مشاهده کنید را برایتان آورده ایم.
Windows Resource Protection did not find any integrity violations.
این پیام به معنای آن است که SFC موفق پیدا به کردن هیچ فایل سیستم خراب یا گم شده ای نشده است و همه چیز در امن و امان است و شما باید اشکال را در جای دیگری جستجو کنید.
Windows Resource Protection could not perform the requested operation
شما زمانی با این پیام مواجه خواهید شد که دستور SFC قادر نباشد بررسی خودش را ادامه دهد و یا با مشکلی در بررسی کردن به وجود بیاید. البته اگر نیاز به اجرای آفلاین باشد نیز شما با این پیام مواجه خواهید شد.
Windows Resource Protection found corrupt files and successfully repaired them. Details are included in the CBS.Log %WinDir%\Logs\CBS\CBS.log:
این پیام، همان چیزی است که انتظارش را داریم. زمانی که دستور SFC موفق به پیدا کردن فایل های خراب شود و آن ها را با فایل های WRP جایگزین کند، در این صورت این پیام به نمایش در می آید.
Windows Resource Protection found corrupt files but was unable to fix some of them. Details are included in the CBS.Log %WinDir%\Logs\CBS\CBS.log:
شما زمانی این پیام را مشاهده می کنید که SFC فایل های مشکل دار را پیدا کند، اما موفق نشود آن ها را با فایل های سیستمی WRP جایگزین کند.
دستور SFC را به صورت آفلاین اجرا کنید
همانطور که در بالا هم گفتیم، SFC همیشه موفق به جایگزینی فایل های خراب با فایل های سیستمی نمی شود. اگر فایل مورد نظر روی رم آپلود شده باشد، در این صورت نیاز است که دستور SFC در حالت Safe mode یا Windows Repair وارد شود.
کلید های start و i را به صورت همزمان شوید تا تنظیمات شوید.
از بخش Update & Security گزینه Recovery را انتخاب کنید و گزینه Restart Now را که در قسمت Advanced Startup قرار گرفته است را انتخاب کنید.
روی گزینه Trubleshoot کلیک کنید و به قسمت Advanced Option وارد شوید و ابزار Command Prompt را انتخاب کنید. ویندوز شما ریستارت می شود و پس از آن حساب کاربری خود را انتخاب کنید و پسوردتان را وارد کنید.
اگر بخواهید SFC را خارج از ویندوز اجرا کنید، در ابتدا باید دستور wmic را اجرا کنید و مسیر پارتیشن ویندوز و پارتیشن Reserved را پیدا کنید.
Wmic logicaldisk get deviceid, volumename, description
پس از آن که پارتیشن های Windows و Reserved مشخص شدند، باید دستور SFC را با مسیرهایی که پیدا شده اند، وارد کنید:
sfc /scannow /offbootdir=C:\ /offwindir=D:\Windows
دقت کنید که جلوی پارامتر /offbootdir باید آدرس پارتیشن System Reserved را وارد کنید و جلوی پارامتر /offwindir باید آدرس پارتیشن ویندوز را وارد کنید.
نکته دیگری که لازم است بدانید، این است که موقعی که ویندوز را با خط فرمان اجرا می کنید، این احتمال وجود دارد که Letter درایوها تغییر کند. به همین خاطر ما نیاز به دستور wmic داریم تا از نقش درایوهای ویندوز اطمینان حاصل کنیم. پس از آن که فرایند بررسی کردن فایل های سیستمی با SFC تمام شد، پنجره CMD را ببندید و گزینه Continue را انتخاب کنید.
جزئیات عملکرد دستور SFC را بررسی کنید
پس از آن که فایل های سیستمی را بررسی کردید، SFC یک خروجی از عملکرد شما به ارائه می دهد که می توانید آن را از مسیر زیر بیابید:
%windir%\Logs\CBS\CBS.log
محتوای خروجی که در فایل CBS.log قرار می گیرد، پیچیده است. برای آن که خوانایی این فایل بهتر باشد، می توانید از دستور findstr برای حل این مشکل استفاده کنید و خروجی را به یک فایل متنی دیگر ارسال کنید.
findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log >"%userprofile%\Desktop\Sfcdetails.txt"
فایل Sfcdetails.txt جزئیات کاملی از هر بار استفاده از دستور SFC دارد. در این فایل می توانید اطلاعاتی در رابطه با فایل هایی که تعمیر نشده اند، به دست بیاورید. برای آن که این اطمینان را کسب کنید که چه فایل هایی در آخرین زمان اجرا دستور SFC تعمیر نشده اند، باید تاریخ آن ها را بررسی کنید.
پس از آن که دستور بالا را اجرا کردید، فایل sfcdetails.txt در دسکتاپ شما ذخیره می شود و شما می توانید این فایل را به کمک Notepad اجرا کنید تا تمامی فایل هایی که توسط دستور SFC تعمیر نشده اند را به صورت دستی تعمیر کنید.
برای مثال محتوایی که در زیر مشاهده می کنید، به فایلی مربوط است که توسط SFC به صورت کامل تعمیر نشده است:
۲۰۰۷-۰۱-۱۲ ۱۲:۱۰:۴۲, Info CSI ۰۰۰۰۰۰۰۸ [SR] Cannot repair member file [l:34{17}]”Accessibility.dll” of Accessibility, Version = 6.0.6000.16386, pA = PROCESSOR_ARCHITECTURE_MSIL (8), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:b03f5f7f11d50a3a}, Type neutral, TypeName neutral, PublicKey neutral in the store, file is missing
فایل های سیستمی خراب شده یا گم شده را به صورت دستی تعمیر کنید
این احتمال وجود دارد که شما به کمک اجرا کردن دستور SFC در ویندوز یا اجرا SFC به صورت آفلاین موفق نشدید که فایل های آسیب دیده را تعمیر کنید، می توانید این کار به صورت دستی و به کمک Command Prompt انجام دهید.
برای آن که فایل های سیستمی را به صورت دستی تعمیر کنید، باید از این موضوع آگاه باشید که چه فایل هایی آسیب دیده اند. این کار را می توانید به کمک CBS.log که از طریق دستور SFC ارائه می شود، به دست آورید. توصیه ما این است که نسخه ای که به کمک دستور findstr بازسازی شده است را بررسی کنید؛ این کار سرعت به نتیجه رسیدن شما را افزایش میدهد.
چگونه فایل های سیستمی که خراب شده یا گم شده اند را با کمک CMD جایگزین کنیم؟
برای آن که فایل های آسیب دیده را جایگزین کنید، باید اول Command Prompt را به شکل Administrator اجرا کنید و مالکیت فایلی که خراب شده است را به خود اطلاق دهید. برای آنکه مالکیت فایل ها برای شما شود، نیاز است که از دستور takeown به همراه پارامتر /F استفاده کنید. این دستور را در زیر برایتان آورده ایم:
takeown /f C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Accessibility.dll
کاری که شما باید انجام دهید، این است که به جای C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Accessibility.dll آدرس و مسیر فایلی که خراب شده است را وارد کنید.
پس از آن که مالکیت فایل را به دست آوردید، باید مجوز فایل را ویرایش کنید. برای این کار می توانید از دستور Icacls به همراه پارامتر /Grantاستفاده کنید.
icacls C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Accessibility.dll /Grant Administrators:F
اجرا کردن این دستور به شما دسترسی کامل برای ویرایش کردن یا حذف کامل فایل ها را می دهد. شما می توانید از دستور Copy یا Xcopy استفاده کنید و فایل سیستمی را با فایل آسیب دیده جایگزین کنید.
Xcopy H:\WRP\Accessibility.dll C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ /Y
دقت داشته باشید که مثل دستور قبلی، شما می توانید آدرس ها را با چیزی که خودتان می خواهید، جایگزین کنید.
پس از آن که دستور گفته شده را اجرا کردید، شما می توانید از SFC و پارامتر /verifyfile استفاده کنید و درستی فایل سیستمی که جایگزین کرده اید را بررسی کنید:
sfc /verifyfile=C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Accessibility.dll
سخن آخر
فکر می کنید نکته ای در مورد عیب یابی و تعمیر ویندوز به کمک دستورات DISM و SFC مانده است؟ البته که نه! هرچیزی که مربوط به عیب یابی و تعمیر ویندوز بود را در این مقاله به صورت مفصل و جامع توضیح دادیم تا شما به هیچ منبع دیگری نیاز نداشته باشید.