¿Cuál es el propósito del parámetro DISM / RestoreHealth y SFC?
Aug 19 2020
¿Cuál es el propósito del DISM
/RestoreHealth
parámetro y el SFC
/ScanNow
parámetro?
- ¿Cómo se correlacionan entre sí?
- ¿En qué orden deben ejecutarse?
- ¿Por qué es importante la secuencia de órdenes al ejecutar cualquiera?
Respuestas
3 JW0914 Aug 19 2020 at 13:28
El almacén de componentes [ %WinDir%\WinSxS
] mantiene una copia de seguridad de todos los archivos del sistema de Windows SFC
y DISM
administra dos partes vitales separadas del almacén de componentes y el sistema operativo, SFC
confiando completamente en lo que DISM
administra.
DISM
tiene dos funciones en las que seSFC
basa/StartComponentCleanup
y/RestoreHealth
, al/RestoreHealth
depender únicamente de/StartComponentCleanup
/StartComponentCleanup
: Limpia el almacén de componentes de cualquier enlace duro roto
Es imperativo que la gente de Insider Builds ejecute esto regularmente debido a las frecuentes actualizaciones/RestoreHealth
: Verifica y corrige cualquier daño en el almacén de componentes verificando sus copias de seguridad de archivos del sistema con copias buenas conocidas de los servidores de Windows Update mediante comparación de hash; si bien existe un método sin conexión [a continuación], es posible que no siempre solucione la corrupción
SFC
siempre asume que el almacén de componentes no está dañado y es por eso que elDISM
/RestoreHealth
parámetro siempre debe ejecutarse antes deSFC
; no hacerlo permite que un almacén de componentes dañado reemplace potencialmente un buen archivo del sistema con uno dañado o no corrija la corrupción en su%WinDir%
totalidad/ScanNow
: Verifica y corrige cualquier daño interno%WinDir%
al verificar las copias buenas conocidas dentro del almacén de componentes a través de la comparación de hash
DISM
y SFC
deben ejecutarse en el orden indicado, ya que cada uno se basa en lo que hace el anterior:
-
El almacén de componentes siempre debe limpiarse antes de ejecutar Windows Update, después de un problema con Windows Update y al menos una vez al mes, ya que se ensucia con el tiempo debido a que las actualizaciones ocasionalmente rompen enlaces duros.# Online (while booted to Windows): Dism /Online /Cleanup-Image /StartComponentCleanup # Offline (while booted to WinPE/WinRE): Dism /Image:"D:\Windows" /Cleanup-Image /StartComponentCleanup # C: is usually not the drive letter in WinPE/WinRE # To ascertain: DiskPart -> Lis Vol -> Exit
-
Requiere una conexión a Internet, de lo contrario, se requerirá el método fuera de línea:# Online (while booted to Windows): Dism /Online /Cleanup-Image /RestoreHealth # Offline (while booted to WinPE/WinRE): Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth
- Utilice el
install.esd
||install.wim
desde la ISO de instalación de Windows para la versión instalada (v1909, v2004, etc.) :- Cree medios de instalación de Windows 10 → Descargue la herramienta ahora → Elija instalar en otra PC
- Monte el ISO y determine el índice del sistema operativo instalado [imagen] desde el
install.esd
||install.wim
:Dism /Get-ImageInfo /ImageFile:"Z:\sources\install.esd"
- Especifique el número de índice al final del
/Source
parámetro:# Online (while booted to Windows): # ESD: Dism /Online /Cleanup-Image /RestoreHealth /Source:esd:"Z:\sources\install.esd":6 /LimitAccess # WIM: Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:"Z:\sources\install.wim":6 /LimitAccess # Offline (while booted to WinPE/WinRE): Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth /Source:esd:"Z:\sources\install.esd":6 /LimitAccess
- Utilice el
- Reiniciar (si se encuentran errores, revise el
%WinDir%\Logs\DISM\dism.log
, comenzando desde abajo hacia arriba)- Los archivos de registro son más fáciles de leer y examinar a través de la sintaxis de registro en VS Code
- Los archivos de registro son más fáciles de leer y examinar a través de la sintaxis de registro en VS Code
-
# Online (while booted to Windows): Sfc /ScanNow # Offline (while booted to WinPE/WinRE): Sfc /ScanNow /OffBootDir=D:\ /OffWinDir=D:\Windows
- Reiniciar (si se encontraron errores, revise el
%WinDir%\Logs\CBS\CBS.log
, comenzando desde abajo hacia arriba)
Los ejecuto semanalmente a través del Programador de tareas para ayudar a evitar que ocurran problemas aleatorios:
Dism_ComponentCleanup.xml
Ejecuta semanalmente los domingos a las 11:30:00Dism_RestoreHealth.xml
Ejecuta semanalmente los domingos a las 12:00:00Sfc_ScanNow.xml
Ejecuta semanalmente los domingos a las 13:00:00
Para importar al Programador de tareas:
- GUI:
-
TaskSchd.msc
- Acción → Nueva carpeta ... → Nombre:
Custom
- Acción → Importar tarea ... →
<task_name>.xml
-
- CLI:
Cmd
:SchTasks /Create /Xml "%UserProfile%\Downloads\<task_name>.xml" /Tn "\Custom\Task Name" /Ru "%ComputerName%\%UserName%"
Powershell
:Register-ScheduledTask -Xml (Get-Content '$env:UserProfile\Downloads\<task_name>.xml' | Out-String) -TaskName "Task Name" -TaskPath "\Custom\" -User $env:ComputerName\$env:UserName –Force