DISM / RestoreHealth 매개 변수 및 SFC의 목적은 무엇입니까?

Aug 19 2020

DISM /RestoreHealth매개 변수와 매개 변수 의 목적은 무엇입니까 SFC /ScanNow?

  • 서로 어떻게 연관됩니까?
  • 어떤 순서로 실행해야합니까?
  • 둘 중 하나를 실행할 때 순서 순서가 중요한 이유는 무엇입니까?

답변

3 JW0914 Aug 19 2020 at 13:28

구성 요소 스토어는 [ %WinDir%\WinSxS] 모든 Windows 시스템 파일의 백업 복사본을 유지하고 SFCDISM함께, 구성 요소 저장 및 OS의 두 개의 분리 된, 중요한 부분을 관리 SFC의존 완전히 무엇인지에 따라 DISM관리한다.



  • DISM이 두 가지 기능 SFC에 의존 /StartComponentCleanup/RestoreHealth함께, /RestoreHealth에 전적으로 의존/StartComponentCleanup
    • /StartComponentCleanup: 깨진 하드 링크 의 구성 요소 저장소를 정리 합니다 . 내부자 빌드의 필수 사용자는 자주 업데이트를주기 때문에이 작업을 정기적으로 실행합니다.
    • /RestoreHealth: 해시 비교를 통해 Windows Update 서버의 알려진 양호한 복사본에 대해 시스템 파일 백업을 확인하여 구성 요소 저장소의 손상을 확인하고 수정합니다. 오프라인 방법이 [아래] 존재하지만 항상 손상을 수정하지는 않습니다.

  • SFC항상 구성 요소 저장소가 손상되지 않았다고 가정하고DISM /RestoreHealth 매개 변수가 항상 먼저 실행되어야하는이유입니다SFC. 그렇게하지 않으면 손상된 구성 요소 저장소가 잠재적으로 좋은 시스템 파일을 손상된 파일로 대체하거나 손상을%WinDir%완전히수정하지 못할수 있습니다.
    • /ScanNow:%WinDir% 해시 비교를 통해 구성 요소 저장소 내의 알려진 양호한 복사본과 비교하여 내부 손상을 확인하고 수정합니다.


DISM그리고 SFC각각 앞의 일이 무엇에 의존으로, 나열된 순서대로 실행해야합니다 :

  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
    
    구성 요소 저장소는 Windows 업데이트를 실행하기 전, Windows 업데이트 문제가 발생한 후, 그리고 한 달에 한 번 이상 항상 정리 해야 합니다.

  2. # Online (while booted to Windows):
      Dism /Online /Cleanup-Image /RestoreHealth
    
    # Offline (while booted to WinPE/WinRE):
      Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth
    
    인터넷 연결이 필요합니다. 그렇지 않으면 오프라인 방법이 필요합니다.
    • 사용 install.esd||를 install.wim로부터 윈도우 ISO를 설치 설치된 버전 (등 v1909, v2004) :
      1. Windows 10 설치 미디어 생성지금 도구 다운로드다른 PC설치 선택
      2. ISO를 마운트하고 || 에서 설치된 OS 인덱스 [이미지]를 확인합니다. : install.esdinstall.wim
        Dism /Get-ImageInfo /ImageFile:"Z:\sources\install.esd"
        
      3. /Source매개 변수 끝에 색인 번호를 지정하십시오 .
        # 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. 재부팅 (오류가 발견되면 %WinDir%\Logs\DISM\dism.log아래에서 위로 시작하여을 검토 )
  4. # Online (while booted to Windows):
      Sfc /ScanNow
    
    # Offline (while booted to WinPE/WinRE):
      Sfc /ScanNow /OffBootDir=D:\ /OffWinDir=D:\Windows
    
  5. 재부팅 (오류가 발견되면 %WinDir%\Logs\CBS\CBS.log아래부터 위로 검토 )


무작위 문제가 발생하는 것을 방지하기 위해 작업 스케줄러 를 통해 매주 실행 합니다.

  1. Dism_ComponentCleanup.xml
    매주 일요일 11:30:00에 실행
  2. Dism_RestoreHealth.xml
    매주 일요일 12:00:00에 실행
  3. Sfc_ScanNow.xml
    매주 일요일 13:00:00에 실행

작업 스케줄러로 가져 오려면 :

  • GUI :
    1. +R
      → 열기 :TaskSchd.msc
    2. 동작새 폴더 ... → 이름 :Custom
    3. 작업작업 가져 오기 ...<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