Using System File Checker (SFC) To Fix Issues
Both Windows Vista and Windows Server 2008 include the System File Checker (SFC) tool. Previous operating systems included this tool also. This discussion is specific to Windows Vista and Windows Server 2008. If you would like more information on previous operating systems see the following KB article: https://support.microsoft.com/kb/310747.
SFC scans and checks all Windows Resource Protected (WRP) resources. Windows Vista adds the following new functionality to the SFC tool:
- Ability to scan a single file
- Ability to scan a Windows installation offline
Common SFC Command Line Options
Here are some of the common commands you would use with SFC. Note you need to run SFC from a elevated command prompt
Scan entire system
SFC.EXE /scannow
Scan a specific file
SFC.EXE /scanfile=c:\windows\system32\kernel32.dll
Verify. This scans all protected files but does not repair them
SFC.EXE /verifyonly
Help for Sfc.exe
SFC.EXE /?
One of the new features of SFC in Windows Vista/2008 is the ability to run SFC against a offline windows directory. This is most useful when you are unable to start Windows and suspect file corruption. Generally you should always try safe mode first before doing this to see if Windows can start. To use SFC in offline mode you do the following
- Boot from your Windows Vista or Windows Server 2008 DVD
- On the first screen of Setup choose Next
- In the lower left of the screen choose "repair your computer"
- On the System Recovery Options screen choose your installation of Windows and then click next
- Click "Command prompt"
- Type in the following command: SFC.EXE /scannow /offbootdir=c:\ /offwindir=c:\windows
- When complete type in exit to see if Windows starts up now.
Advanced users may want to see what SFC is repairing on a system. When SFC runs it logs it's actions to C:\WINDOWS\LOGS\CBS\CBS.LOG. You can find SFC specific entries by searching on [SR]. See https://support.microsoft.com/default.aspx/kb/928228 for more information.
Example of How SFC Can Fix Issues
The following is a example of how the system file checker was able to resolve a issue on my own computer. The issue I encountered was that When I would go into disk management my disks would show up but none of the information such as the type of disk, size, active/boot/system, healthy, etc... would show up. I checked the system event log and found the following
FMIFS.DLL is obviously a file used by disk management to display this information. If I look up the error code C1 it resolves to ERROR_BAD_EXE_FORMAT. So at this point I suspect that this file is corrupt. From within Windows I run the following command:
SFC.EXE /scannow
It runs and says that it has repaired files. To verify I look in the C:\WINDOWS\LOGS\CBS\CBS.LOG and see the following entries
From this you can tell that SFC compared the hash for fmifs.dll and found it wasn't correct. It restored the backup from c:\windows\WinSxS\x86_microsoft-
windows-fmifs_31bf3856ad364e35_6.0.6000.16386_none_54d7af8934ac24f1. After running SFC I was now able to open disk management and see my disk information.
Hopefully this helps explain how SFC can help you resolve problems on your computer and shows how Microsoft is committed to making Windows easier to fix when issues do occur.
Author:
Scott McArthur
Support Escalation Engineer
Enterprise Platforms Support
Comments
Anonymous
December 18, 2007
PingBack from http://www.ditii.com/2007/12/18/fixing-issues-with-system-file-checker/Anonymous
December 19, 2007
What I'm most interested in is how SFC in Windows Vista handles files which have been updated by hotfixes/service packs, ESPECIALLY, when checking an offline Windows installation. Do the original unpatched files from the Windows DVD get restored or the updated ones from some backup? Where is the backup made?Anonymous
April 22, 2008
The comment has been removedAnonymous
May 24, 2009
The comment has been removedAnonymous
February 01, 2010
The comment has been removedAnonymous
February 09, 2011
The comment has been removedAnonymous
July 24, 2013
Will it work on sbs2011 for netlogon fails to start. 0xc0000064Anonymous
October 20, 2014
verify only seems to be on by default... how do i turn it off?Anonymous
April 14, 2015
The comment has been removedAnonymous
April 16, 2015
For Shadow: boot from the installation CD/DVD then choose the repair option, then go to the command prompt.Anonymous
June 27, 2015
Hi Scott
OS : Windows Server 2012
I am facing an issue that none of the https websites are opening in the IE. It gives an error of This page cannot be displayed.
Also after i started getting this error, I wanted to install Teamviewer , but Durin Installation and even uninstalling i keep getting error which says " Verification of your Teamviewer version failed. Team viewer will quit for secirity reasons. Please re-install teamviewer"
I had been looking on the Internet to resolve the https sites issue, but cannot get any resolution.
1. On one of the websites http://www.techsupportall.com/solved-cannot-access-secure-sites-https-websites-not-opening-view/
gives a resolution to Register the DLLs listed on the above webpage. When i tried that half of them failed.
2. When i click on the fix connection problems on the IE it gives a following error : 0x80004001
3. Googling on the above error led me to this page.
4. I ran the following command SFC.exe /scannow but after the scan is complete it says windows did not find any integrity violations.
Would appreciate a lot if you could help out on this.- Anonymous
March 30, 2016
Check system time, system time being way off breaks SSL.
- Anonymous
Anonymous
August 10, 2015
I have to apply the sfc/scannow in more than 300 systems. We are using the system center 2012 configuration manager. Please help how to apply the same with this with administrative rights.Anonymous
September 07, 2016
In the windows repair environment from ro media the original post says:o Click "Command prompt"o Type in the following command: SFC.EXE /scannow /offbootdir=c:\ /offwindir=c:\windowsThen the post says:o When SFC runs it logs it’s actions to C:\WINDOWS\LOGS\CBS\CBS.LOGThis isn't true in Windows 10, indeed, it doesn't seem to have been true since Vista. In fact sfc logs to %WINDOWS_TRACING_LOGFILE% (undocumented, but found by a number of people) and, if this file does not exist or if, indeed, the environment variable isn't set, it doesn't log. WinRE command prompt does not have the variable set, at least not when its sitting in RAM (i.e. from a boot of an ISO image, as recommended above.)Setting the variable allows sfc to log and, indeed, is convenient because it can be set to a sequence of files in x:\logs as we try to fix the problems that sfc cannot fix.Anonymous
December 28, 2017
Found a great Microsoft page that uses Deployment Image Servicing and Management (DISM) before running SFC. DISM is ran online and uses Windows Update to repair the files. https://support.microsoft.com/en-us/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system. Justin