Solución al error SFC “Windows Resource Protection found corrupt files but was unable to fix some of them” (SFC/DISM, CBS.log)

¿Ves “Windows Resource Protection found corrupt files but was unable to fix some of them” al ejecutar sfc /scannow? Aquí aprenderás a confirmar si hay corrupción real, cómo leer CBS.log, qué pasos seguir con DISM y cuándo puedes ignorar el aviso con total tranquilidad.

Índice

Contexto y síntesis del caso

Resumen del problema: Tras ejecutar sfc /scannow aparece el mensaje de que hay archivos dañados que no pudieron corregirse. Ya se probaron varios comandos DISM (incluido /Online /Cleanup-Image /RestoreHealth y con /Source:install.wim), pero el mensaje vuelve a salir. Se dispone de CBS.log para revisión.

Conclusión principal: en el registro CBS más reciente, SFC terminó correctamente (“Repair complete”) y no reemplazó archivos; por tanto, no hay corrupción activa. Es muy probable que el mensaje visto en consola pertenezca a una ejecución previa, a una lectura parcial del log o a diferencias no críticas (p. ej., archivos de idioma/telemetría) que SFC reporta de forma ruidosa. Si el último log está limpio, puedes ignorar el aviso.

Qué significa realmente el mensaje de SFC

SFC (System File Checker) compara archivos protegidos por Windows Resource Protection (WRP) contra copias de referencia en el almacén de componentes (WinSxS). Al terminar, escribe el detalle en %windir%\Logs\CBS\CBS.log y un resumen en la consola. Ese resumen a veces:

  • Refleja el resultado de una ejecución anterior si abres múltiples consolas o no reinicias cuando se solicita.
  • Se “ensucia” con diferencias benignas (paquetes de idioma, telemetría, drivers OEM o archivos de características opcionales).
  • No aclara si, en la última ejecución, se reparó o no; por eso es clave revisar [SR] en CBS.log.

Verificación rápida: ¿realmente hay corrupción?

  1. Ejecuta SFC como Administrador: sfc /scannow Reinicia si el sistema lo pide.
  2. Extrae solo las líneas relevantes del último análisis: findstr /c:"[SR]" "%windir%\Logs\CBS\CBS.log" > "%userprofile%\Desktop\sfcdetails.txt" Abre sfcdetails.txt y comprueba que aparezca algo como “[SR] Repair complete” para el sello de tiempo más reciente y que no haya líneas “cannot repair” con la misma marca de tiempo.
  3. Si vuelve a quejarse, limpia el almacén de componentes y repara la imagen: DISM /Online /Cleanup-Image /StartComponentCleanup DISM /Online /Cleanup-Image /RestoreHealth Nota: Evita /Image:C:\ salvo reparación offline. En un sistema iniciado, usa siempre /Online.
  4. (Opcional) Reparación con fuente local conocida: Primero identifica el índice correcto en tu install.wim o install.esd (según tu edición de Windows): dism /Get-WimInfo /WimFile:E:\sources\install.wim Luego repara usando esa fuente: DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:E:\sources\install.wim:ÍNDICE /LimitAccess Si es ESD, usa ESD: en lugar de WIM:.
  5. Vuelve a ejecutar SFC: sfc /scannow Revisa de nuevo sfcdetails.txt. Si ves “Repair complete” y no aparecen “cannot repair” para la misma hora/fecha, el sistema está OK.

Interpretar sfcdetails.txt y CBS.log sin confundirse

A SFC le preceden etiquetas [SR]. Lo importante es el periodo de tiempo más reciente. Aquí tienes un mapa para leerlo correctamente:

Patrón en el logQué significaAcción recomendada
[SR] Beginning Verify and RepairInicio de una ejecución de SFC.Aísla esta sesión por marca de tiempo.
[SR] Repairing corrupted file ...Se detectó y reparó un archivo.Normal; verifica si al final aparece “Repair complete”.
[SR] Cannot repair member file ...No pudo reemplazar un archivo en esa pasada.Si al final dice “Repair complete” y ya no se repite, quedó resuelto. Si persiste, usa DISM.
[SR] Repair completeLa verificación terminó correctamente.Si no hay “cannot repair” en la misma sesión, el sistema está íntegro.

Guía completa para dejar el sistema “en verde”

Preparación y mejores prácticas

  • Abre Símbolo del sistema (Administrador) o PowerShell (Administrador).
  • Cierra aplicaciones críticas y desactiva temporalmente antivirus de terceros si interfiere con DISM.
  • Asegúrate de tener espacio libre en C: (ideal > 5–10 GB).

Secuencia recomendada

  1. Limpieza de componentes: DISM /Online /Cleanup-Image /StartComponentCleanup
  2. Reparación de imagen: DISM /Online /Cleanup-Image /RestoreHealth
  3. Verificación SFC: sfc /scannow
  4. Revisión de log: findstr /c:"[SR]" "%windir%\Logs\CBS\CBS.log" > "%userprofile%\Desktop\sfcdetails.txt"

Reparación con fuente local (cuando DISM pide origen o devuelve 0x800f081f)

  1. Obtén el índice de tu edición: dism /Get-WimInfo /WimFile:D:\sources\install.wim
  2. Aplica la reparación con la fuente exacta: DISM /Online /Cleanup-Image /RestoreHealth /Source:WIM:D:\sources\install.wim:ÍNDICE /LimitAccess

Consejo: El índice debe corresponder exactamente a tu edición/versión (Home/Pro, idioma, compilación). Usar un índice que no coincide suele causar errores de origen.

Si persiste: modo seguro u offline

  • Modo seguro: Arranca en modo seguro y repite DISM + SFC.
  • SFC offline (WinRE o USB de instalación): sfc /scannow /offbootdir=C:\ /offwindir=C:\Windows

Comprobaciones adicionales (solo si sigues viendo errores)

  • Comprobar el sistema de archivos: chkdsk C: /scan Si detecta errores, usa: chkdsk C: /f y reinicia.
  • Windows Update al día: instala las actualizaciones acumulativas (CU) y de la pila de servicio (SSU) vigentes para tu versión.
  • Reparación in‑place (último recurso): inicia el instalador de la misma versión/edición de Windows desde el escritorio y elige Conservar archivos y aplicaciones.

Cuándo puedes ignorar el aviso con tranquilidad

  • El sfcdetails.txt más reciente muestra “Repair complete”.
  • No aparecen líneas “cannot repair” para esa misma hora/fecha, o bien hay “Repairing corrupted file” seguido de “Repair complete”.
  • No tienes síntomas: Windows Update funciona, no hay pantallas azules, bloqueos ni apps del sistema fallando.
  • Los elementos pendientes pertenecen a paquetes de idioma, telemetría o componentes opcionales conocidos por generar falsos positivos.

Problemas habituales y su solución

SituaciónCausa probableSolución
SFC repite “cannot repair”, pero al final “Repair complete”.Se repararon archivos durante la pasada; el mensaje intermedio es histórico.Vuelve a ejecutar SFC. Si no reaparece, no hay corrupción.
DISM 0x800f081f / origen no encontrado.Falta de archivos fuente o índice incorrecto.Usa /Source:WIM|ESD:...:ÍNDICE correcto y añade /LimitAccess.
DISM error 87.Sintaxis incorrecta o espacios mal ubicados.Revisa comillas y parámetros; ejecuta como Administrador.
Se usó /Image:C:\ en un sistema en línea.Parámetro equivocado para entorno online.Usa /Online; reserva /Image: para reparaciones offline.
Entradas sobre telemetría/idiomas.Componentes opcionales o paquetes LXP/LIP.Si el log final está limpio, ignóralo o reinstala el paquete de idioma si te resulta molesto.
Drivers OEM modificados.Archivos no coinciden con la referencia WRP.Actualiza/reinstala drivers desde el fabricante o desde Windows Update.

Checklist de validación rápida

PasoComandoResultado esperado
SFCsfc /scannowSin errores o pide reinicio.
Extraer [SR]findstr a sfcdetails.txt“Repair complete” en la sesión más reciente.
Limpieza de componentesDISM ... /StartComponentCleanupOperación completada.
Reparación de imagenDISM ... /RestoreHealthLa operación se completó correctamente.
Verificación finalsfc /scannowOK y log sin “cannot repair”.

Script por lotes para automatizar la secuencia

Guárdalo como ReparaSFC.cmd, ejecútalo como Administrador y revisa el sfcdetails.txt generado en el Escritorio.

@echo off
setlocal enableextensions
echo === Inicio: %date% %time% ===

echo \[1/5] Ejecutando StartComponentCleanup...
DISM /Online /Cleanup-Image /StartComponentCleanup
if errorlevel 1 echo Advertencia: StartComponentCleanup devolvio un error.

echo \[2/5] Reparando la imagen con DISM...
DISM /Online /Cleanup-Image /RestoreHealth
if errorlevel 1 echo Advertencia: RestoreHealth devolvio un error. Si ves 0x800f081f, usa /Source.

echo \[3/5] Ejecutando SFC...
sfc /scannow

echo \[4/5] Extrayendo \[SR] a sfcdetails.txt...
del "%userprofile%\Desktop\sfcdetails.txt" 2>nul
findstr /c:"\[SR]" "%windir%\Logs\CBS\CBS.log" > "%userprofile%\Desktop\sfcdetails.txt"

echo \[5/5] Listo. Abre sfcdetails.txt y busca 'Repair complete' sin 'cannot repair' en la sesion mas reciente.
echo === Fin: %date% %time% ===
pause
endlocal

Preguntas frecuentes

¿Puedo usar PowerShell en lugar de CMD?

Sí, ejecuta la misma sintaxis dentro de una sesión de PowerShell con privilegios elevados.

¿Cuándo debo reiniciar?

Si SFC o DISM lo solicitan, reinicia antes de interpretar resultados, para evitar mezclar estados.

¿Hace falta desactivar el antivirus?

Normalmente no. Si DISM arroja bloqueos en archivos temporales, desactiva temporalmente soluciones de terceros durante la reparación.

¿Por qué DISM dice “la imagen es reparable” pero SFC aún falla?

DISM repara la imagen (WinSxS). SFC copia desde esa imagen a los destinos protegidos. Ejecuta DISM → SFC en ese orden y revisa el log de SFC más reciente.

¿Qué pasa si mi medio de instalación es más antiguo?

Usar una fuente con compilación/edición diferente puede fallar o no encontrar origen. Lo ideal es una ISO de la misma versión y edición que tu sistema.

Buenas prácticas para no volver a ver el error

  • Mantén Windows actualizado (CU y SSU) y reinicia tras actualizaciones de componentes.
  • Evita limpiar agresivamente WinSxS con herramientas de terceros; usa solo DISM.
  • Instala paquetes de idioma o características opcionales desde fuentes confiables y en la misma compilación.
  • Realiza comprobaciones periódicas: Dism /Online /Cleanup-Image /AnalyzeComponentStore
  • Antes de cambios mayores (drivers, personalizaciones), crea un punto de restauración o imagen del sistema.

Conclusión

El mensaje “Windows Resource Protection found corrupt files but was unable to fix some of them” no siempre implica corrupción activa. Lo determinante es el último sfcdetails.txt: si aparece “Repair complete” sin “cannot repair” de la misma sesión, tu sistema está íntegro y puedes ignorar el aviso. Si persiste el problema, sigue la secuencia DISM → SFC, considera una reparación con fuente local, prueba en modo seguro o offline, y como último recurso realiza una reparación in‑place. Con estos pasos, en la práctica la mayoría de los casos quedan “en verde” sin reinstalar Windows.


Resumen operativo paso a paso

  1. Ejecuta sfc /scannow; reinicia si se solicita.
  2. Genera sfcdetails.txt y verifica “Repair complete” sin “cannot repair”.
  3. Si hay quejas, ejecuta: DISM /Online /Cleanup-Image /StartComponentCleanup DISM /Online /Cleanup-Image /RestoreHealth
  4. Opcional: repara con /Source:WIM|ESD:...:ÍNDICE y /LimitAccess.
  5. Repite sfc /scannow y confirma el log final.
  6. Si persiste: modo seguro, SFC offline, chkdsk, Windows Update, o reparación in‑place.

En resumen: el log más reciente indica que la integridad del sistema está correcta; si confirmas eso en sfcdetails.txt, no hay nada que corregir y puedes ignorar el mensaje anterior. Si el mensaje reaparece y el log muestra archivos irrecuperables, aplica la secuencia DISM → SFC y, si hace falta, reparación offline o in‑place.

Índice