Apa tujuan parameter DISM / RestoreHealth dan SFC?

Aug 19 2020

Apa tujuan dari DISM /RestoreHealthparameter dan SFC /ScanNowparameter tersebut?

  • Bagaimana mereka berkorelasi satu sama lain?
  • Dalam urutan apa mereka harus dijalankan?
  • Mengapa urutan urutan penting saat menjalankan keduanya?

Jawaban

3 JW0914 Aug 19 2020 at 13:28

The Komponen Toko [ %WinDir%\WinSxS] memelihara salinan cadangan dari semua file sistem Windows dan SFCdan DISMmengelola dua terpisah, potongan penting dari Toko Komponen dan OS, dengan SFCmengandalkan sepenuhnya pada apa yang DISMberhasil.



  • DISMmemiliki dua fungsi SFCbergantung pada, /StartComponentCleanupdan /RestoreHealth, dengan /RestoreHealthmengandalkan semata-mata/StartComponentCleanup
    • /StartComponentCleanup: Membersihkan Penyimpanan Komponen dari semua tautan keras yang rusak
      Sangat penting bagi orang-orang di Insider Builds untuk menjalankan ini secara teratur karena pembaruan yang sering
    • /RestoreHealth: Memverifikasi dan memperbaiki kerusakan apa pun di Penyimpanan Komponen dengan memverifikasi cadangan file sistemnya terhadap salinan bagus yang diketahui dari server Pembaruan Windows melalui perbandingan hash; sementara metode offline memang ada [di bawah], itu mungkin tidak selalu memperbaiki kerusakan

  • SFCselalu menganggap Penyimpanan Komponen tidak rusak dan itulah sebabnyaDISM /RestoreHealthparameter harus selalu dijalankan sebelumSFC; tidak melakukannya memungkinkan Penyimpanan Komponen yang rusak berpotensi mengganti file sistem yang baik dengan yang rusak atau gagal memperbaiki kerusakan di dalamnya%WinDir%sama sekali
    • /ScanNow: Memverifikasi dan memperbaiki kerusakan apa pun di dalam %WinDir%dengan memverifikasi salinan bagus yang diketahui dalam Penyimpanan Komponen melalui perbandingan hash


DISMdan SFCharus dijalankan dalam urutan yang terdaftar, karena masing-masing bergantung pada apa yang dilakukan sebelumnya:

  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
    
    Penyimpanan Komponen harus selalu dibersihkan sebelum menjalankan Pembaruan Windows, setelah masalah dengan Pembaruan Windows, dan setidaknya sebulan sekali, karena menjadi kotor dari waktu ke waktu dari pembaruan yang kadang-kadang merusak tautan keras

  2. # Online (while booted to Windows):
      Dism /Online /Cleanup-Image /RestoreHealth
    
    # Offline (while booted to WinPE/WinRE):
      Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth
    
    Membutuhkan koneksi internet, jika tidak, metode offline akan dibutuhkan:
    • Gunakan install.esd|| install.wimdari Windows Instal ISO untuk versi yang diinstal (v1909, v2004, dll.) :
      1. Buat media instalasi Windows 10Unduh alat sekarang → Pilih untuk menginstal di PC lain
      2. Pasang ISO dan tentukan indeks OS yang diinstal [image] dari install.esd|| install.wim:
        Dism /Get-ImageInfo /ImageFile:"Z:\sources\install.esd"
        
      3. Tentukan nomor indeks di akhir /Sourceparameter:
        # 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. Reboot (jika ditemukan kesalahan, tinjau %WinDir%\Logs\DISM\dism.log, mulai dari bawah ke atas)
  4. # Online (while booted to Windows):
      Sfc /ScanNow
    
    # Offline (while booted to WinPE/WinRE):
      Sfc /ScanNow /OffBootDir=D:\ /OffWinDir=D:\Windows
    
  5. Reboot (jika ditemukan kesalahan, tinjau %WinDir%\Logs\CBS\CBS.log, mulai dari bawah ke atas)


Saya menjalankan mingguan ini melalui Penjadwal Tugas untuk membantu mencegah masalah acak terjadi:

  1. Dism_ComponentCleanup.xml
    Dilakukan setiap minggu pada hari Minggu pukul 11:30:00
  2. Dism_RestoreHealth.xml
    Dieksekusi setiap minggu pada hari Minggu pukul 12:00:00
  3. Sfc_ScanNow.xml
    Dijalankan setiap minggu pada hari Minggu pukul 13:00:00

Untuk mengimpor ke Penjadwal Tugas:

  • GUI:
    1. +R
      → Buka:TaskSchd.msc
    2. TindakanFolder Baru ... → Nama:Custom
    3. TindakanImpor Tugas ...<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