sfc / DISM - Reparar archivos del sistema
Cuando Windows se vuelve inestable o funciones estándar como Configuración o el menú Inicio dejan de funcionar correctamente, el Comprobador de archivos de sistema (sfc) es una de las primeras herramientas que conviene probar. Analiza los archivos protegidos del sistema de Windows y sustituye por la versión correcta los que estén dañados o hayan sido modificados.
Si sfc no puede solucionar el problema, combínelo con el comando DISM, que repara el almacén de componentes que sfc utiliza como origen. Este artículo explica ambos comandos y el orden en que conviene ejecutarlos.
Preparación: ejecutar como administrador
sfc y DISM solo funcionan en un Símbolo del sistema ejecutado como administrador. Si ejecuta sfc sin permisos de administrador, muestra un error indicando que debe ejecutar una sesión de consola como administrador, y el análisis no se inicia.
Para saber cómo abrir el Símbolo del sistema como administrador, consulte
.Sintaxis básica de sfc
sfc [/scannow] [/verifyonly] [/scanfile=<archivo>] [/verifyfile=<archivo>]
[/offbootdir=<unidad> /offwindir=<carpeta_de_Windows>] [/offlogfile=<archivo_de_registro>]
| Opción | Descripción |
|---|---|
/scannow | Analiza todos los archivos protegidos y repara los problemas |
/verifyonly | Analiza todos los archivos protegidos sin repararlos |
/scanfile=<archivo> | Analiza un archivo y lo repara si hay un problema (indique la ruta completa) |
/verifyfile=<archivo> | Analiza un archivo sin repararlo (indique la ruta completa) |
/offbootdir /offwindir | Se dirige a una instalación de Windows que no está en ejecución (por ejemplo, desde un entorno de recuperación; se necesitan ambas opciones) |
/offlogfile=<archivo_de_registro> | Indica dónde se escribe el registro de las reparaciones sin conexión |
Analizar y reparar todo el sistema
sfc /scannow
Mientras se ejecuta, el progreso se muestra como «Verificación al xx % completada». Según el equipo, puede tardar desde varias decenas de minutos hasta una hora o más, así que no cierre la ventana ni apague el PC durante el análisis.
El porcentaje puede parecer quedarse fijo durante mucho tiempo, pero el proceso sigue en marcha. Salvo que haya dejado claramente de avanzar durante un tiempo muy prolongado, evite forzar su cierre.
Cómo interpretar los mensajes de resultado
Al terminar, se muestra uno de los siguientes mensajes.
| Mensaje (resumen) | Significado y siguiente paso |
|---|---|
| La Protección de recursos de Windows no encontró ninguna infracción de integridad. | No hay problemas con los archivos del sistema. Busque otra causa. |
| La Protección de recursos de Windows encontró archivos dañados y los reparó correctamente. | La reparación ha terminado. Reinicie el PC y compruebe si el problema desapareció. |
| La Protección de recursos de Windows encontró archivos dañados, pero no pudo reparar algunos. | Pase a «Reparar el origen con DISM», más abajo. |
| La Protección de recursos de Windows no pudo realizar la operación solicitada. | No se pudo ejecutar la reparación. Vuelva a intentarlo en modo seguro. Si sigue fallando, compruebe si existen las carpetas PendingDeletes y PendingRenames en C:\Windows\WinSxS\Temp. Si ejecuta desde un entorno de recuperación, indique /offbootdir y /offwindir. |
Después de una reparación, ejecute sfc /scannow otra vez para confirmar que ya no informa de infracciones de integridad.
Solo analizar, sin reparar
Si solo quiere conocer el estado del sistema sin modificarlo, use /verifyonly.
sfc /verifyonly
Analizar y reparar un archivo concreto
Si sabe qué archivo está dañado, puede indicarlo con su ruta completa.
sfc /scanfile=C:\Windows\System32\kernel32.dll
sfc /verifyfile=C:\Windows\System32\kernel32.dll
Consultar los detalles en el registro
Los detalles de sfc se guardan en C:\Windows\Logs\CBS\CBS.log. Este archivo es muy grande, por lo que resulta más fácil de leer si extrae solo las líneas de sfc (las marcadas con [SR]).
findstr /c:"[SR]" "%windir%\Logs\CBS\CBS.log" > "%userprofile%\Desktop\sfcdetails.txt"
> es la redirección, que escribe la salida en un archivo. Para más detalles, consulte
findstr, consulte .
Otras operaciones se registran en el mismo archivo, así que sin filtrar por [SR] es difícil encontrar las líneas que busca.
Cuando sfc no lo soluciona: reparar el origen con DISM
sfc repara los archivos usando las copias guardadas en el almacén de componentes (C:\Windows\WinSxS). Si el propio almacén de componentes está dañado, sfc no puede reparar nada. En ese caso, use DISM (Deployment Image Servicing and Management) para reparar el almacén de componentes.
DISM /Online /Cleanup-Image /RestoreHealth
| Comando | Qué hace |
|---|---|
DISM /Online /Cleanup-Image /CheckHealth | Comprueba rápidamente si se ha registrado algún daño (no repara) |
DISM /Online /Cleanup-Image /ScanHealth | Analiza todo el almacén de componentes (no repara) |
DISM /Online /Cleanup-Image /RestoreHealth | Analiza y repara los daños que encuentre |
De forma predeterminada, /RestoreHealth obtiene los archivos de reparación de Windows Update, por lo que se necesita conexión a Internet. Puede tardar mucho y el porcentaje puede parecer detenerse a mitad del proceso.
Orden de ejecución
La recomendación de Microsoft es reparar primero el origen con DISM y después ejecutar sfc. Otro método habitual es probar primero sfc, pasar a DISM solo si no funciona y ejecutar sfc una vez más. En cualquier caso, termine confirmando con sfc /scannow que el problema se ha resuelto.
Los pasos al ejecutar primero DISM son:
- Ejecute
DISM /Online /Cleanup-Image /RestoreHealth - Cuando termine, ejecute
sfc /scannow - Reinicie y compruebe si los síntomas han mejorado
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
Si el PC no puede conectarse a Windows Update, puede usar la opción /Source para indicar una imagen de Windows en buen estado como origen de reparación. Por ejemplo, indique /Source:WIM:X:\sources\install.wim:1 y añada /LimitAccess si no quiere que se conecte a Windows Update. La imagen debe coincidir con el Windows instalado en versión, edición e idioma.
Ejecutarlo desde un archivo por lotes
Reunir los pasos en un archivo por lotes que se ejecute con permisos de administrador evita escribirlos cada vez.
@echo off
net session >nul 2>&1
if errorlevel 1 (
echo Ejecute esto como administrador.
pause
exit /b 1
)
echo === Analisis y reparacion del origen con DISM ===
DISM /Online /Cleanup-Image /RestoreHealth
echo.
echo === Analisis y reparacion de archivos del sistema con sfc ===
sfc /scannow
echo.
echo Terminado. Revise los resultados y reinicie si es necesario.
pause
net session falla sin permisos de administrador, por lo que se usa a menudo como comprobación sencilla de permisos. Sin embargo, en un entorno donde el servicio Servidor está detenido, puede fallar incluso para un administrador. Para volver a lanzar un script automáticamente con permisos de administrador, consulte
DISM guarda registros detallados en C:\Windows\Logs\DISM\dism.log. Si DISM falla, consulte también este archivo.
Resumen
| Qué quiere hacer | Comando |
|---|---|
| Analizar y reparar los archivos del sistema | sfc /scannow |
| Solo analizar, sin reparar | sfc /verifyonly |
| Analizar y reparar un archivo concreto | sfc /scanfile=ruta_completa |
| Extraer los detalles del registro de sfc | findstr /c:"[SR]" "%windir%\Logs\CBS\CBS.log" |
| Reparar el origen (almacén de componentes) | DISM /Online /Cleanup-Image /RestoreHealth |