DISM vs SFC: The Repair Order That Saves Hours

Was this helpful?

There’s a special kind of workplace misery: Windows starts acting haunted, updates fail, apps crash, and every “quick fix” turns into a long walk through error codes. Someone suggests running sfc /scannow. Someone else says DISM. Someone says “just reimage it.” And you’re stuck deciding whether you’re about to spend 10 minutes—or your entire afternoon.

The good news: this is one of the few Windows repair topics where a simple order-of-operations reliably saves time. The bad news: people still run it backward, misread the output, and then blame the tool—like it’s a vending machine that “stole their dollar.”

The only mental model you need: what DISM and SFC actually touch

SFC (System File Checker) verifies and repairs protected system files in your running Windows installation. It compares what’s on disk with known-good versions—but those known-good versions come from somewhere. That “somewhere” is the Windows Component Store (WinSxS) and its servicing metadata.

DISM (Deployment Image Servicing and Management) is the servicing toolchain Windows uses to maintain and repair the image itself—especially the component store that SFC relies on. If the component store is damaged or missing payloads, SFC can detect corruption and still fail to fix it because its repair source is compromised.

So here’s your core model:

  • DISM fixes the repair source. Think: “heal the warehouse.”
  • SFC fixes the deployed files. Think: “replace the stuff already on the shelves.”

If you run SFC first when the component store is busted, you can end up with an endless loop of “found corruption” with no lasting repair. It’s not that SFC is bad. It’s that you asked it to rebuild a house using bricks from a cracked kiln.

And yes, DISM can also service offline images (mounted WIMs, offline Windows directories). SFC can do some offline checks too. That distinction matters when you’re rescuing a machine that barely boots or when you’re repairing VDI golden images at scale.

One operational quote that belongs on a sticky note near your KVM cart:

“Hope is not a strategy.” — General Gordon R. Sullivan

Don’t “hope” SFC magically repairs what DISM is responsible for. Use the tools in the order their dependencies demand.

The repair order that saves hours (and why)

The default order for a running system

  1. DISM health check (quick signal)
  2. DISM RestoreHealth (repairs component store)
  3. SFC /scannow (repairs protected system files)
  4. Reboot if anything was repaired
  5. Re-run SFC if needed (yes, sometimes twice)

Why this order works: SFC’s ability to repair depends on a working component store. DISM repairs that store by using Windows Update, WSUS, or a specified source (WIM/ESD). Only after the store is healthy should you ask SFC to replace files.

When you should break the rule

Rarely, but here are the real cases:

  • You suspect only a couple of files are corrupted (e.g., one DLL) and you need a quick datapoint. Running SFC first can confirm corruption quickly, but don’t stop there if it can’t repair.
  • You’re offline with no source media and DISM can’t repair without it. Running SFC may still fix some files if the store is partially intact. It’s not ideal; it’s triage.
  • Your Windows Update client is broken and DISM depends on it as a source. In that case, you’ll point DISM to a local source anyway (and still run it before SFC).

Here’s the rule I enforce in production environments: If SFC says it found corruption but couldn’t fix it, stop rerunning SFC like it’s a lottery ticket. Switch to DISM.

Short joke #1: Rerunning sfc /scannow five times doesn’t make it more correct; it just makes you more optimistic than your change board.

Facts and history: why Windows repairs look like this

Windows servicing is the reason these tools exist and also the reason they sometimes feel like they were designed by a committee with an allergy to simple answers. A few facts and history points that explain today’s behavior:

  1. SFC predates modern component servicing. It goes back to Windows’ file protection era (Windows 2000/XP) where system files were guarded and replaced from cached copies.
  2. DISM replaced older imaging tools. Before DISM, you had tools like ImageX for WIM handling; DISM became the Swiss army knife for servicing images and features.
  3. The component store (WinSxS) is not “just duplicates.” It’s a side-by-side store that supports servicing, rollback, and multiple component versions.
  4. “Component store corruption” is often metadata corruption. It’s not always missing binaries; sometimes the servicing manifest/catalog state is inconsistent.
  5. Servicing stack updates matter. The servicing stack is the machinery that applies updates. When it’s broken, repairs can fail in ways that look unrelated.
  6. DISM can use Windows Update as a repair source. That’s convenient—and also why broken update paths, blocked endpoints, or WSUS misconfiguration can derail repairs.
  7. WIM vs ESD sources aren’t interchangeable without care. Install media may contain install.wim or install.esd; indexes differ by edition, and the wrong index produces “source files could not be found.”
  8. Some errors are policy, not corruption. If Group Policy blocks contacting Windows Update, DISM can fail even on a healthy system if you expect it to fetch payloads online.
  9. SFC logs are noisy on purpose. The CBS log captures servicing operations and can read like a novel written by a printer driver. Filtering is part of the job.

Fast diagnosis playbook: find the bottleneck before you “try stuff”

This is the part where you save the most time. Don’t start with repairs. Start with constraints: network, source availability, edition mismatch, disk health, and whether you’re even repairing the right Windows install.

First: confirm the problem is actually corruption

  • If Windows Update is failing, grab the error and determine if it’s network/policy versus component corruption.
  • If apps are crashing, confirm whether system file integrity is implicated (event logs, WER, DISM/SFC results).

Second: confirm your repair source path is viable

  • Online: does the machine reach Windows Update or WSUS? Is policy blocking it?
  • Offline: do you have the correct ISO matching build/edition/language? Do you know the right image index?

Third: check disk health and free space

  • Low disk space can make DISM and servicing fail in messy ways.
  • Disk errors can masquerade as “corruption” repeatedly.

Fourth: run DISM health checks before full repair

  • /CheckHealth is quick and tells you if corruption is flagged.
  • /ScanHealth is slower but gives better signal.

Fifth: repair the component store (DISM), then repair system files (SFC)

  • DISM first. Always, unless you literally can’t.
  • SFC after. Verify results. Reboot if repairs occurred.

Sixth: only then consider escalation

  • In-place upgrade repair.
  • Known-good reimage (especially for fleets).
  • Hardware replacement if disk or RAM is suspect.

Practical tasks: 12+ command runs, outputs, and decisions

These are written like an on-call runbook: run a command, read the output, make a decision. Commands are shown in a standardized console format. The host prompt is arbitrary; the commands are the point.

Task 1: Quick component-store flag check (DISM CheckHealth)

cr0x@server:~$ DISM /Online /Cleanup-Image /CheckHealth
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

No component store corruption detected.
The operation completed successfully.

What it means: DISM does not see a corruption flag. This does not prove the system is perfect, but it’s a strong hint you may be chasing something else (policy, disk, drivers).

Decision: If symptoms persist, run /ScanHealth and SFC; otherwise pivot to logs/update troubleshooting.

Task 2: Deeper scan for corruption (DISM ScanHealth)

cr0x@server:~$ DISM /Online /Cleanup-Image /ScanHealth
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

[==========================100.0%==========================]
The component store is repairable.
The operation completed successfully.

What it means: Corruption exists and DISM believes it can repair it.

Decision: Run /RestoreHealth next. Don’t waste time on repeated SFC runs yet.

Task 3: Repair the component store (DISM RestoreHealth)

cr0x@server:~$ DISM /Online /Cleanup-Image /RestoreHealth
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

[==========================100.0%==========================]
The restore operation completed successfully.
The operation completed successfully.

What it means: The component store is repaired.

Decision: Now run SFC to repair any system files that were damaged or mismatched.

Task 4: Repair protected system files (SFC scannow)

cr0x@server:~$ sfc /scannow
Beginning system scan. This process will take some time.

Beginning verification phase of system scan.
Verification 100% complete.

Windows Resource Protection found corrupt files and successfully repaired them.
For online repairs, details are included in the CBS log file located at
windir\Logs\CBS\CBS.log.

What it means: SFC replaced/repair some files using the now-healthy store.

Decision: Reboot. Then optionally re-run SFC to confirm “no integrity violations.”

Task 5: When SFC can’t repair (the key fork in the road)

cr0x@server:~$ sfc /scannow
Beginning system scan. This process will take some time.

Beginning verification phase of system scan.
Verification 100% complete.

Windows Resource Protection found corrupt files but was unable to fix some of them.
For online repairs, details are included in the CBS log file located at
windir\Logs\CBS\CBS.log.

What it means: SFC confirmed corruption but couldn’t fix all of it—commonly because the component store is unhealthy or missing payloads.

Decision: Run DISM /RestoreHealth (with a source if needed). Then re-run SFC.

Task 6: DISM fails because it can’t find source files (0x800f081f pattern)

cr0x@server:~$ DISM /Online /Cleanup-Image /RestoreHealth
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

Error: 0x800f081f

The source files could not be found.
Use the "Source" option to specify the location of the files that are required to restore the feature.

What it means: DISM can’t fetch or locate the payloads. This is often network/policy (WSUS/WU blocked) or you need a local ISO source.

Decision: Provide a valid install media source (WIM/ESD) that matches build and edition, or fix update source connectivity.

Task 7: Identify install media image indexes (WIM/ESD) before using /Source

cr0x@server:~$ DISM /Get-WimInfo /WimFile:D:\sources\install.wim
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Details for image : D:\sources\install.wim

Index : 1
Name : Windows 10 Home
Description : Windows 10 Home
Size : 15,123,456,789 bytes

Index : 6
Name : Windows 10 Pro
Description : Windows 10 Pro
Size : 15,987,654,321 bytes

The operation completed successfully.

What it means: Install media contains multiple editions; each has an index.

Decision: Use the index that matches the installed edition (e.g., Pro). Wrong index = wrong components = DISM still fails.

Task 8: Repair using a local WIM source (avoid Windows Update dependency)

cr0x@server:~$ DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:D:\sources\install.wim:6 /LimitAccess
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

[==========================100.0%==========================]
The restore operation completed successfully.
The operation completed successfully.

What it means: DISM repaired using your provided WIM and did not attempt Windows Update (/LimitAccess).

Decision: Run SFC next. If SFC still can’t fix, you may have deeper servicing issues, disk problems, or mismatched media/build.

Task 9: Use ESD as a source (common on newer ISOs)

cr0x@server:~$ DISM /Online /Cleanup-Image /RestoreHealth /Source:ESD:D:\sources\install.esd:6 /LimitAccess
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

[==========================100.0%==========================]
The restore operation completed successfully.
The operation completed successfully.

What it means: Same concept as WIM, different container format.

Decision: If ESD fails but WIM works (or vice versa), your media may be incomplete or the index may be wrong. Validate the ISO and index selection.

Task 10: Confirm Windows edition (so you don’t pick the wrong index)

cr0x@server:~$ DISM /Online /Get-CurrentEdition
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

Current edition is:

Current Edition : Professional

The operation completed successfully.

What it means: Your installed edition is Professional.

Decision: Match this to the WIM/ESD index name (e.g., Windows 10 Pro). Do not guess. Guessing is how you get “source files could not be found.”

Task 11: Component store cleanup (only after health is good)

cr0x@server:~$ DISM /Online /Cleanup-Image /StartComponentCleanup
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

[==========================100.0%==========================]
The operation completed successfully.

What it means: Removes superseded components to reduce store size. Not a repair step by itself, but can reduce future servicing weirdness and reclaim space.

Decision: Use it after successful repairs, not before. If the store is corrupted, “cleanup” can complicate recovery by removing rollback material.

Task 12: Offline DISM repair (when Windows won’t boot cleanly)

cr0x@server:~$ DISM /Image:E:\ /Cleanup-Image /RestoreHealth /Source:WIM:D:\sources\install.wim:6 /LimitAccess
Deployment Image Servicing and Management tool
Version: 10.0.19041.1

Image Version: 10.0.19045.3803

[==========================100.0%==========================]
The restore operation completed successfully.
The operation completed successfully.

What it means: You repaired an offline Windows installation located at E:\.

Decision: Next run offline SFC against that same Windows directory, then attempt boot. If it still fails, you’re moving toward in-place upgrade repair or reimage.

Task 13: Offline SFC scan and repair (targeting the right directories)

cr0x@server:~$ sfc /scannow /offbootdir=E:\ /offwindir=E:\Windows
Beginning system scan. This process will take some time.

Beginning verification phase of system scan.
Verification 100% complete.

Windows Resource Protection found corrupt files and successfully repaired them.

What it means: SFC repaired the offline install. This is the “rescue mode” equivalent of the normal workflow.

Decision: Reboot into the repaired OS. If it boots but is unstable, check disk and event logs; corruption that returns is usually hardware or storage-related.

Task 14: Extract SFC-relevant log lines from CBS.log (reduce noise)

cr0x@server:~$ findstr /c:"[SR]" %windir%\Logs\CBS\CBS.log > %userprofile%\Desktop\sfc-details.txt

What it means: Filters CBS log entries tagged by SFC (“[SR]”) into a smaller file you can read without losing your will to live.

Decision: If the log repeatedly references the same file failing to repair, suspect store/source mismatch or locked files (then rerun after reboot or in WinRE).

Task 15: Validate free space (servicing needs room to breathe)

cr0x@server:~$ fsutil volume diskfree C:
Total # of free bytes        : 10737418240
Total # of bytes             : 255852544000
Total # of avail free bytes  : 10737418240

What it means: About 10 GB free. That’s borderline but often workable. Servicing can require several GB depending on pending operations.

Decision: If free space is low (single-digit GB on modern Windows), clean up before repairs—especially before feature installs and cumulative updates.

Task 16: Check the disk for file system issues (when corruption keeps coming back)

cr0x@server:~$ chkdsk C: /scan
The type of the file system is NTFS.
Volume label is OS.

Stage 1: Examining basic file system structure ...
  512000 file records processed.
File verification completed.
Windows has scanned the file system and found no problems.
No further action is required.

What it means: NTFS looks consistent. This doesn’t prove the disk hardware is perfect, but it reduces the odds you’re repairing on quicksand.

Decision: If CHKDSK reports errors, fix those first (possibly offline). Re-running DISM/SFC on a corrupt filesystem is like mopping during a plumbing leak.

Short joke #2: DISM progress stuck at 20% is Windows’ way of teaching patience without the courtesy of a syllabus.

Three corporate mini-stories (realistic, anonymized, painful)

Mini-story #1: The incident caused by a wrong assumption

The helpdesk queue started filling with “Outlook crashes on launch” and “Teams won’t update.” Not one machine. Dozens. The common link wasn’t obvious because the fleet spanned multiple sites and hardware models.

An engineer made the classic assumption: “It’s a bad app update.” They rolled back Office on a few machines. No change. They toggled antivirus policies. No change. Then they ran sfc /scannow on one machine, saw “corrupt files repaired,” and declared victory. The next day the same machines broke again.

What was actually happening: a subset of machines had a broken component store due to a partially applied servicing stack change combined with a flaky internal update source. SFC was able to repair some files but kept pulling replacements from a store that wasn’t consistently healthy, so the system drifted back into a bad state after servicing operations.

The fix wasn’t heroic. It was disciplined. They first stabilized the update source path, then ran DISM /RestoreHealth using a local ISO source with /LimitAccess to avoid the broken network path, and only then ran SFC. Machines stopped relapsing. The wrong assumption wasn’t “SFC is useless.” The wrong assumption was “app crashes must be app problems.” In Windows land, app crashes are often the smoke, not the fire.

Mini-story #2: The optimization that backfired

A desktop engineering team wanted to speed up patching and reduce disk usage. They pushed an aggressive component cleanup policy across endpoints. The idea was reasonable: keep WinSxS from ballooning, reduce storage pressure, and get faster compliance.

It worked—until it didn’t. A wave of machines started failing feature-on-demand installs and some cumulative updates. DISM /RestoreHealth began complaining about missing source files more often. The cleanup policy had reduced the local availability of superseded components, which is fine when Windows Update is healthy, but their environment had a split-brain update story: some sites used WSUS, some were direct, and some were behind strict egress control.

When the source wasn’t reachable, the machines had fewer local fallbacks. Repairs that used to succeed offline now required a correct external source, and not everyone had it. Support time spiked. The “optimization” shifted cost from disk space to human time—the most expensive resource in the building.

The team rolled back the most aggressive cleanup schedule, documented when to run /StartComponentCleanup, and standardized a local ISO source process for remote sites. The lesson wasn’t “never clean up.” It was “don’t optimize away your recovery paths unless your source-of-truth is truly reliable.”

Mini-story #3: The boring but correct practice that saved the day

A financial services company (anonymized, but you know the type) had a strict golden image pipeline for VDI. Every month: patch the base image, validate, seal, publish. Boring. Predictable. Slightly soul-crushing. Also: incredibly effective.

One month, after patching, random VDI instances began failing app launches with odd DLL errors. Engineers suspected the new cumulative update. The security team suspected endpoint controls. Everyone suspected everyone. Meanwhile, traders wanted their desktops back yesterday.

The VDI team’s boring practice was simple: they always ran DISM health checks and SFC on the golden image before sealing it, and they archived the output and CBS snippets with the build artifacts. This time DISM /ScanHealth flagged repairable corruption on the image before it was published widely.

They repaired the image with DISM using a controlled source, reran SFC until it reported no integrity violations, then published. The outage stayed small. The postmortem was short. Their “boring” runbook prevented the classic fleet-wide problem: shipping corruption as a feature.

Common mistakes: symptoms → root cause → fix

1) Symptom: SFC says it repaired files, but problems return after updates

Root cause: Component store still unhealthy, or update path reintroduces bad state (failed servicing, pending operations, broken source).

Fix: Run DISM /ScanHealth and /RestoreHealth (use a known-good source if your update path is questionable), then run SFC again. Confirm update source stability.

2) Symptom: “Windows Resource Protection found corrupt files but was unable to fix some of them”

Root cause: SFC can’t find good replacements in the component store, or files are locked/pending replacement.

Fix: DISM /RestoreHealth first. Reboot. Re-run SFC. If still failing, run SFC offline from WinRE.

3) Symptom: DISM error 0x800f081f (“source files could not be found”)

Root cause: Missing payloads and no valid source available; wrong ISO/build/edition; policy blocks Windows Update; WSUS missing content.

Fix: Use /Source:WIM: or /Source:ESD: with the correct index, add /LimitAccess, and ensure the ISO matches the installed build/edition/language closely enough.

4) Symptom: DISM “stuck” at a percentage for a long time

Root cause: It’s doing work (hash verification, component analysis) with poor disk performance, AV scanning, or heavy contention.

Fix: Wait a reasonable time, but verify disk health and free space. Temporarily reduce endpoint scanning impact if your policy allows. Don’t kill DISM early unless you like half-written servicing state.

5) Symptom: DISM succeeds, SFC still fails on the same files

Root cause: Wrong repair source (edition/index mismatch), third-party filter drivers, or the corruption is in areas SFC doesn’t fix (or files are replaced at boot).

Fix: Confirm edition with DISM /Get-CurrentEdition, confirm WIM index, re-run with correct source. Try offline SFC. If persistent, consider in-place upgrade repair.

6) Symptom: Feature install fails (NetFx3, RSAT, language packs) and DISM complains

Root cause: Payloads not present locally and Windows Update/WSUS cannot supply them; component cleanup removed local copies.

Fix: Provide a source matching the OS and use /LimitAccess. Standardize feature payload distribution if you’re in a locked-down network.

7) Symptom: Repairs succeed but updates still fail

Root cause: Not all update failures are corruption. Could be servicing stack issues, policy, or a specific update regression.

Fix: Use DISM/SFC to clear integrity issues, then troubleshoot Windows Update separately (event logs, update history, policy). Don’t keep repairing a healthy image because an update is blocked by policy.

Checklists / step-by-step plan

Checklist A: Standard online repair (most cases)

  1. Confirm free space (aim for several GB, more is better).
  2. Run DISM /CheckHealth.
  3. If needed, run DISM /ScanHealth.
  4. Run DISM /RestoreHealth.
  5. Run sfc /scannow.
  6. Reboot if anything was repaired.
  7. Re-run sfc /scannow to confirm “no integrity violations.”
  8. If updates were failing, retry the update.

Checklist B: Online repair with controlled source (WSUS/WU unreliable or blocked)

  1. Mount the correct ISO (matching build/edition as closely as practical).
  2. Find the correct index with DISM /Get-WimInfo.
  3. Run DISM /RestoreHealth with /Source and /LimitAccess.
  4. Run sfc /scannow.
  5. Reboot and validate.

Checklist C: Offline repair from WinRE/PE (system unstable or unbootable)

  1. Identify the Windows volume letter in recovery environment (it may not be C:).
  2. Run offline DISM against /Image:<drive>:\ with a known-good source.
  3. Run offline SFC with /offbootdir and /offwindir.
  4. Reboot and validate.
  5. If corruption returns quickly, prioritize disk and memory diagnostics.

Checklist D: Fleet practice (how to stop doing this one machine at a time)

  1. Standardize repair media for each OS build and edition you support.
  2. Document the index mapping once; don’t rediscover it during incidents.
  3. Enforce the DISM-then-SFC order in runbooks and scripts.
  4. Collect and centralize results (success/fail + key error codes) so you can spot patterns.
  5. If you see repeating 0x800f081f, fix update source distribution or make ISO sources accessible.

FAQ

1) Should I run DISM or SFC first?

DISM first in most cases: repair the component store, then run SFC to repair protected system files. The dependency flows that way.

2) If DISM says “No component store corruption detected,” is SFC pointless?

No. DISM checks the store; SFC checks the deployed system files. You can have file-level issues without store-level corruption. Run SFC if symptoms suggest system file damage.

3) Why does SFC say it fixed files but my issue remains?

Either the issue wasn’t caused by protected system file corruption, or the system re-corrupts due to failing storage, a broken servicing path, or third-party filter drivers. Confirm with DISM and check disk health.

4) What does DISM error 0x800f081f really mean?

DISM can’t locate required source payloads. That can be because Windows Update/WSUS isn’t reachable, policy blocks it, or your provided ISO/index doesn’t match what DISM needs.

5) Do I need an ISO every time?

No. If Windows Update/WSUS is healthy and allowed, DISM often repairs online without local media. In locked-down networks, having the right ISO handy is the difference between 10 minutes and a ticket ping-pong.

6) Can I run DISM and SFC on a server in production hours?

Usually yes, but treat it like a maintenance action. It’s disk- and CPU-intensive and can contend with workloads. On critical systems, schedule it or validate impact in a maintenance window.

7) What’s the difference between /CheckHealth and /ScanHealth?

/CheckHealth is fast and reports whether corruption is flagged. /ScanHealth performs a deeper scan and can take longer. If you need a real signal, use /ScanHealth.

8) Should I use /StartComponentCleanup to fix corruption?

No. Cleanup is not a repair mechanism. Run it after repairs and when you’re confident you won’t need rollback components. Overusing cleanup can make offline recovery harder.

9) Why does DISM use WinSxS, and why is that folder huge?

WinSxS supports servicing, side-by-side components, and update rollback. It’s not just “bloat”; it’s part of how Windows maintains itself. You can reduce it safely with component cleanup, but don’t treat it like a cache you can delete.

10) When do I stop repairing and just reimage?

If corruption returns after a successful DISM+SFC cycle, or DISM can’t repair even with correct sources, or disk/RAM issues are suspected. For fleets, reimage is often cheaper than artisanal troubleshooting.

Next steps you can actually do today

Here’s the practical operating stance: use DISM to fix the component store, then use SFC to fix the running system. Read the output like it’s telling you what to do next—because it is.

  1. On your next “Windows is weird” ticket, run DISM /CheckHealth and /ScanHealth before you start reinstalling apps.
  2. If corruption is repairable, run DISM /RestoreHealth. If you get 0x800f081f, stop and provide a correct source.
  3. Run sfc /scannow, reboot, and confirm integrity.
  4. If the same machines keep relapsing, check disk health and your update source. Recurring corruption is usually a system-level cause, not “bad luck.”
  5. For teams: standardize ISO sources and index mapping, and bake the DISM-then-SFC order into your runbooks and scripts.

Do it in the right order and you’ll fix more machines with fewer heroics. Do it in the wrong order and you’ll learn a lot about CBS logs—mostly against your will.

← Previous
RDP Security: 9 Hardening Steps Before You Open Port 3389
Next →
OneDrive “Backup” Isn’t a Backup: How to Do It Properly

Leave a comment