تعمیر ویندوز با CMD و دستور sfc

تعمیر ویندوز با CMD یا Command Prompt (دستور sfc)

زمانیکه در ویندوز با خطاهای از قبیل: فایل سیستمی X پیدا نشد یا فایل سیستمی فلان خراب شده است مواجه شدید میتوانید از ابزار System File Checker استفاده کنید. دستور sfc یا System File Checker یکی از ابزارهای کاربردی در ویندوز میباشد که کاربرد اصلی آن، بررسی و جایگزین کردن فایلهای سیستمی خراب شده یا گم شده با فایلهای سیستمی حفظ (WRP) شده است. در واقع با استفاده از دستور sfc میتوان سیستم عامل ویندوز را با cmd تعمیر نمود.

پیشنهاد: اگر از ویندوز 10 استفاده میکنید بهتر است بجای استفاده از دستور sfc از دستور DISM برای تعمیر ویندوز 10 استفاده کنید، برای اطلاعات بیشتر در این زمینه به آموزش تعمیر ویندوز 10 مراجعه کنید.

استفاده از ابزار System File Checker یا دستور sfc

1- ابتدا Command Prompt را به صورت Evelated یا Run As Administrator اجرا کنید. (برای دریافت اطلاعات بیشتر در این زمینه به آموزش راههای اجرای CMD مراجعه کنید.)

2- دستور sfc را به همراه پارامتر /scannow وارد کنید تا فرایند بررسی فایلهای سیستمی ویندوز شروع شود. (توجه کنید فرایند بررسی زمان زیادی را صرف میکند)

sfc /scannow

تعمیر ویندوز با دستور sfc

پیامهای خروجی از دستور sfc /scannow

پس از اتمام فرایند بررسی فایلهای سیستمی با یکی از پیامهای زیر مواجه خواهید شد:

Windows Resource Protection did not find any integrity violations.

اگر با پیام did not find any integrity violations مواجه شوید، یعنی دستور sfc هیچ فایل سیستمی خراب شده یا گمشده ای در ویندوز پیدا نکرده است.

Windows Resource Protection could not perform the requested operation

اگر دستور sfc نتواند فرایند بررسی خود را ادامه دهد یا با مشکل خاصی مواجه شود یا اینکه نیاز به اجرای Offline داشته باشد، پیام could not perform the requested operation را نمایش خواهد داد.

Windows Resource Protection found corrupt files and successfully repaired them. Details are included in the CBS.Log %WinDir%\Logs\CBS\CBS.log:

زمانیکه دستور sfc به خوبی فایلهای سیستمی خراب شده و گمشده را پیدا و با فایلهای WRP جایگزین میکند، پیام found corrupt files and successfully repaired them را به شما نمایش میدهد.

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 جایگزین کند پیام found corrupt files but was unable to fix some of them را به شما نمایش خواهد داد.

 

اجرای دستور sfc به صورت Offline

متاسفانه در بعضی از موارد دستور sfc نمیتواند فایلها سیستمی را به درستی تعمیر کند. (مثلا زمانیکه فایل مورد نظر در RAM بارگذاری شده باشد) برای اینکه این فایلها را تعمیر کنید یا باید دستور sfc را یا در حالت Safe Mode وارد کنید یا در حال Windows Repair

  • کلید های Start+i را با هم نگه داشته تا وارد پنجره تنظیمات ویندوز 10 شوید
  • وارد بخش Update & Security شوید.
  • بخش Recovery را انتخاب کنید.
  • گزینه Restart Now در قسمت Advanced Startup را انتخاب کنید:

آموزش تعمیر ویندوز

  • بعد از ریستارت شدن و بالا آمدن ویندوز گزینه Trubleshoot را انتخاب کنید.
  • وارد بخش Advanced Option شوید.
  • در بخش 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 باید آدرس پارتیشن ویندوز را وارد کنید.

توجه کنید زمانیکه ویندوز را با خط فرمان (Command Prompt) اجرا میکنید ممکن است Letter درایو ها تغییر کند، از اینرو ما نیاز به دستور wmic داریم تا از نقش درایوهای موجود در ویندوز مطمئن شویم. معمولا در ویندوز 10 درایو System Reserved به درایو C:\ تغییر میکند و درایو ویندوز D:\ میشود.

  • بعد از اتمام فرایند بررسی فایلهای سیستمی با دستور 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 در دسکتاپ ذخیره میشود فایل sfcdetails.txt را با برنامه Notepad باز کنید تا فایلهای که به صورت عادی نتوانسته اند توسط دستور sfc تعمیر شوند را به صورت دستی تعمیر کنید.

محتوای زیر مربوط به یک فایلی میباشد که توسط دستور sfc تعمیر نشده است:

2007-01-12 12:10:42, Info                  CSI    00000008 [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 به صورت offline) ابزار sfc نتوانست فایلهای سیستمی خراب شده یا گمشده را تعمیر کند شما باید خودتان این فایلها را به صورت دستی و با Command Prompt تعمیر کنید.

برای تعمیر فایلهای سیستمی به صورت دستی ابتدا باید بدانید چه فایلهای خراب شده اند، برای پیدا کردن این فایلها باید محتوای فایل CBS.log که توسط دستور sfc تولید شده است را بررسی کنید. البته بهتر است نسخه ای که با دستور findstr بازسازی شده است را بررسی کنید، چراکه محتوای آن زودتر شما را به نتیجه خواهد رساند.

سوال: بر فرض مثال فایلهای سیستمی خراب شده یا گم شده را شناختیم از چه منبعی میتوانیم نسخه سالم این فایلها را پیدا کنیم و آنها را جایگزین فایلهای خراب شده یا گمشده کنیم؟

پاسخ: شما میتوانید به سادگی از یک کامپیوتر دیگر که از همان نسخه ویندوز شما استفاده میکند استفاده کرده و فایلهای مورد نیاز سیستم عامل تان را کپی کنید.

جایگزین نمودن فایلهای سیستمی خراب شده یا گم شده با CMD

1- برای جایگزین نمودن فایلهای سیستمی خراب شده باید ابتدا 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 آدرس و مسیر فایل خراب شده مورد نظر خویش را وارد کنید.

2- پس از دریافت مالکیت فایل نوبت به ویرایش مجوز فایل میرسد برای این منظور میتوانید از دستور 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

در صورت داشتن هر گونه سوال یا انتقاد از مقاله تعمیر ویندوز با Command Prompt تی ام ال منیجر را از محبت خویش محروم نکنید.


برای دریافت نسخه PDF مقاله های سایت ابتدا در سایت ثبت نام کنید تا بتوانید به کلیه مقالات به صورت کاملا رایگان دسترسی پیدا کنید. ورود به سایت | ثبت نام در سایت

 

به نظر شما ممکنه کسی با استفاده از کلید های زیر این مطلب رو به اشتراک بذاره؟
انجمن آی تی یاران
محمد برغمدی

محمد برغمدی

امام علی علیه السلام: با مردم آنگونه معاشرت كنيد، كه اگر مرديد بر شما اشك ريزند، و اگر زنده مانديد، با اشتياق سوي شما آيند.

2 دیدگاه روی “تعمیر ویندوز با CMD و دستور sfc

  • تیر 22, 1397 در 07:55
    Permalink

    با سلام و خسته نباشید خدمت شما
    من با سایت شما تازه آشنا شدم و آموزشهای خیلی کاملی در سایت شما وجود دارد مخصوصا همین آموزش که خیلی عالی توضیح داده شده است و من در هیچ سایتی ندیدم که در این مورد به این صورت انقدر کامل توضیح داده بشود.
    واقعا عالی بود
    ممنونم

    پاسخ
    • محمد برغمدی
      تیر 22, 1397 در 19:52
      Permalink

      سلام حسن جان
      ممنون از لطف و انرژی مثبتی که به بنده دادید.
      ان شا الله شما هم همیشه سربلند و موفق باشید.

      پاسخ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *