How to Run a System File Check on Windows

Your computer is behaving strangely — apps crash unexpectedly, Windows throws cryptic error messages, or performance tanks for no obvious reason. Before reinstalling the OS or blaming your hardware, there's a built-in diagnostic tool worth knowing: System File Checker (SFC). It's free, built into Windows, and often fixes problems that seem far more complicated than they are.

What System File Checker Actually Does

System File Checker (SFC) is a command-line utility built into Windows that scans your system files and replaces corrupted or missing ones with cached copies stored locally on your machine.

Over time, system files can become damaged through:

  • Incomplete Windows updates
  • Sudden power loss during file writes
  • Malware or aggressive third-party software
  • Disk errors that silently corrupt data

SFC checks every protected operating system file against a known-good version. If it finds a mismatch, it attempts to repair it automatically — no internet connection required for most repairs, because Windows stores a local cache of original files.

🔍 It's worth knowing SFC works alongside another tool called DISM (Deployment Image Servicing and Management), which repairs the repair source itself. More on that below.

Step-by-Step: Running SFC on Windows 10 and 11

The process is straightforward, but you must run it with administrator privileges or it will fail silently.

Step 1: Open Command Prompt as Administrator

  • Click the Start menu and type cmd
  • Right-click Command Prompt and select Run as administrator
  • Confirm the UAC (User Account Control) prompt

Alternatively, you can use Windows Terminal or PowerShell — both work the same way as long as they're opened with admin rights.

Step 2: Run the Scan

Type the following command and press Enter:

sfc /scannow 

The scan will begin immediately. Expect it to take 10–30 minutes depending on your drive speed and system configuration. Do not close the window mid-scan.

Step 3: Read the Result

When complete, SFC will display one of three outcomes:

Result MessageWhat It Means
Windows Resource Protection did not find any integrity violationsNo corrupted files detected
Windows Resource Protection found corrupt files and successfully repaired themIssues found and fixed automatically
Windows Resource Protection found corrupt files but was unable to fix some of themCorruption detected but repair failed

If you land in the third category, that's where DISM becomes useful.

When SFC Can't Fix the Problem: Using DISM First

If SFC fails to repair files, or if you want to run a more thorough repair before SFC, use DISM to restore the local repair cache from Microsoft's servers.

Run these commands in order:

DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth 

RestoreHealth connects to Windows Update servers to download clean file versions — so you'll need an internet connection for this step. Once DISM completes, run sfc /scannow again.

This two-tool approach (DISM first, then SFC) is the recommended sequence when dealing with serious or persistent corruption.

Viewing the Detailed SFC Log

The on-screen output gives you a summary, but the full log is stored separately. To view it:

findstr /c:"[SR]" %windir%logscbscbs.log > sfcdetails.txt 

This exports a filtered version of the CBS log to a text file in your current directory. Open it in Notepad to see exactly which files were flagged, repaired, or left unresolved.

Understanding the log isn't always straightforward — entries reference internal Windows paths and repair actions — but it's useful if you're troubleshooting a specific issue or sharing logs with support.

Factors That Affect SFC Outcomes 🛠️

Not every system file check works the same way. Several variables change what SFC can and can't do:

Drive health — If underlying disk errors exist, SFC may detect corruption but struggle to write repaired files correctly. Running CHKDSK before SFC is worthwhile if you suspect drive issues.

Windows version and update state — SFC relies on locally cached originals. A system that hasn't received updates in a long time may have an incomplete or outdated cache, making DISM's role more critical.

Malware presence — Active malware can corrupt files faster than SFC can repair them, or interfere with the repair process entirely. Running SFC in a malware-free environment — or after running a malware scan — gives cleaner results.

Running SFC offline — In rare cases where Windows won't boot properly, SFC can be run from recovery mode using additional parameters to point it at the offline Windows installation. This is a more advanced scenario but follows similar logic.

User account permissions — Running SFC without admin rights results in a "must be an administrator" error. This trips up many first-time users.

SFC vs. Third-Party Repair Tools

Some users turn to third-party system repair software, which often runs broader diagnostics including registry scans, driver checks, and startup optimization. These tools vary enormously in quality — some are genuinely useful diagnostic aids, while others are aggressive in suggesting paid fixes for non-issues.

SFC is notable because it's Microsoft's own tool, targets a defined scope (protected system files), and doesn't require trusting a third party with deep OS access. It also won't overreach or generate false positives to sell you a solution.

That said, SFC doesn't touch driver files, registry entries, or application data — so if your problem originates outside protected system files, SFC will come back clean even when something is genuinely wrong.

What SFC Won't Tell You

A clean SFC result means your protected Windows files are intact — but it doesn't rule out problems caused by:

  • Faulty or outdated drivers
  • Failing RAM (worth testing with Windows Memory Diagnostic)
  • Application-level corruption
  • Hardware issues that only appear under load

How useful SFC turns out to be depends heavily on what's actually causing your symptoms — and that's rarely obvious before you run it.