¿Cuál es el propósito del parámetro DISM / RestoreHealth y SFC?

Aug 19 2020

¿Cuál es el propósito del DISM /RestoreHealthparámetro y el SFC /ScanNowpará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 SFCy DISMadministra dos partes vitales separadas del almacén de componentes y el sistema operativo, SFCconfiando completamente en lo que DISMadministra.



  • DISMtiene dos funciones en las que se SFCbasa /StartComponentCleanupy /RestoreHealth, al /RestoreHealthdepender ú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

  • SFCsiempre asume que el almacén de componentes no está dañado y es por eso que elDISM /RestoreHealthpará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


DISMy SFCdeben ejecutarse en el orden indicado, ya que cada uno se basa en lo que hace el anterior:

  1. # 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
    
    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.

  2. # Online (while booted to Windows):
      Dism /Online /Cleanup-Image /RestoreHealth
    
    # Offline (while booted to WinPE/WinRE):
      Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth
    
    Requiere una conexión a Internet, de lo contrario, se requerirá el método fuera de línea:
    • Utilice el install.esd|| install.wimdesde la ISO de instalación de Windows para la versión instalada (v1909, v2004, etc.) :
      1. Cree medios de instalación de Windows 10Descargue la herramienta ahora → Elija instalar en otra PC
      2. 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"
        
      3. Especifique el número de índice al final del /Sourcepará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
        

  3. Reiniciar (si se encuentran errores, revise el %WinDir%\Logs\DISM\dism.log, comenzando desde abajo hacia arriba)
  4. # Online (while booted to Windows):
      Sfc /ScanNow
    
    # Offline (while booted to WinPE/WinRE):
      Sfc /ScanNow /OffBootDir=D:\ /OffWinDir=D:\Windows
    
  5. 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:

  1. Dism_ComponentCleanup.xml
    Ejecuta semanalmente los domingos a las 11:30:00
  2. Dism_RestoreHealth.xml
    Ejecuta semanalmente los domingos a las 12:00:00
  3. Sfc_ScanNow.xml
    Ejecuta semanalmente los domingos a las 13:00:00

Para importar al Programador de tareas:

  • GUI:
    1. +R
      → Abrir:TaskSchd.msc
    2. AcciónNueva carpeta ... → Nombre:Custom
    3. AcciónImportar 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