Qual è lo scopo del parametro DISM / RestoreHealth e SFC?

Aug 19 2020

Qual è lo scopo del DISM /RestoreHealthparametro e del SFC /ScanNowparametro?

  • Come si correlano tra loro?
  • In quale ordine devono essere eseguiti?
  • Perché la sequenza dell'ordine è importante durante l'esecuzione di entrambi?

Risposte

3 JW0914 Aug 19 2020 at 13:28

Il Componente Conservare [ %WinDir%\WinSxS] mantiene una copia di backup di tutti i file di sistema di Windows e SFCdi DISMgestire due distinti, pezzi vitali della componente Store e OS, con SFCaffidandosi interamente su ciò che DISMgestisce.



  • DISMha due funzioni SFCsu cui fa affidamento /StartComponentCleanupe /RestoreHealth, con /RestoreHealthfare affidamento esclusivamente su/StartComponentCleanup
    • /StartComponentCleanup: Ripulisce il Component Store da eventuali collegamenti fisici interrotti
      È imperativo che le persone su Insider Builds lo eseguano regolarmente a causa dei frequenti aggiornamenti
    • /RestoreHealth: Verifica e corregge qualsiasi danneggiamento nell'archivio componenti verificando i backup dei file di sistema rispetto a copie note valide dai server Windows Update tramite il confronto hash; sebbene esista un metodo offline [di seguito], potrebbe non risolvere sempre il danneggiamento

  • SFCpresume sempre che Component Store non sia danneggiato ed è per questo che ilDISM /RestoreHealthparametro dovrebbe essere sempre eseguito prima diSFC; non farlo consente a un Component Store danneggiato di sostituire potenzialmente un buon file di sistema con uno danneggiato o di non riuscire a riparare il danneggiamento del%WinDir%tutto
    • /ScanNow: Verifica e corregge qualsiasi danneggiamento all'interno %WinDir%verificando le copie valide note all'interno del Component Store tramite il confronto hash


DISMe SFCdevono essere eseguiti nell'ordine elencato, poiché ciascuno si basa su ciò che fa il precedente:

  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
    
    Il Component Store deve essere sempre pulito prima di eseguire Windows Update, dopo un problema con Windows Update e almeno una volta al mese, poiché si sporca nel tempo a causa di aggiornamenti occasionali che interrompono i collegamenti fisici

  2. # Online (while booted to Windows):
      Dism /Online /Cleanup-Image /RestoreHealth
    
    # Offline (while booted to WinPE/WinRE):
      Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth
    
    Richiede una connessione Internet, altrimenti sarà richiesto il metodo offline:
    • Usa il install.esd|| install.wimdal di Windows Installare ISO per la versione installata (v1909, V2004, etc.) :
      1. Crea il supporto di installazione di Windows 10Scarica lo strumento ora → Scegli di installare su un altro PC
      2. Montare l'ISO e determinare l' indice del sistema operativo installato [immagine] dal file install.esd|| install.wim:
        Dism /Get-ImageInfo /ImageFile:"Z:\sources\install.esd"
        
      3. Specificare il numero di indice alla fine del /Sourceparametro:
        # 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. Riavvia (se vengono rilevati errori, rivedere il %WinDir%\Logs\DISM\dism.log, partendo dal basso verso l'alto)
  4. # Online (while booted to Windows):
      Sfc /ScanNow
    
    # Offline (while booted to WinPE/WinRE):
      Sfc /ScanNow /OffBootDir=D:\ /OffWinDir=D:\Windows
    
  5. Riavvia (se sono stati rilevati errori, rivedere il %WinDir%\Logs\CBS\CBS.log, partendo dal basso verso l'alto)


Li eseguo settimanalmente tramite l' Utilità di pianificazione per aiutare a prevenire il verificarsi di problemi casuali:

  1. Dism_ComponentCleanup.xml
    Viene eseguito settimanalmente la domenica alle 11:30:00
  2. Dism_RestoreHealth.xml
    Viene eseguito settimanalmente la domenica alle 12:00:00
  3. Sfc_ScanNow.xml
    Viene eseguito settimanalmente la domenica alle 13:00:00

Per importare in Utilità di pianificazione:

  • GUI:
    1. +R
      → Apri:TaskSchd.msc
    2. AzioneNuova cartella ... → Nome:Custom
    3. AzioneImporta attività ...<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