À quoi servent le paramètre DISM / RestoreHealth et SFC?
Aug 19 2020
Quel est le but du DISM /RestoreHealthparamètre et du SFC /ScanNowparamètre?
- Comment sont-ils corrélés les uns aux autres?
- Dans quel ordre doivent-ils être exécutés?
- Pourquoi la séquence d'ordre est-elle importante lors de l'exécution de l'un ou l'autre?
Réponses
3 JW0914 Aug 19 2020 at 13:28
Le magasin de composants [ %WinDir%\WinSxS] conserve une copie de sauvegarde de tous les fichiers système Windows SFCet DISMgère deux éléments vitaux distincts du magasin de composants et du système d'exploitation, en SFCs'appuyant entièrement sur ce qui DISMgère.
DISMa deux fonctionsSFCrepose sur,/StartComponentCleanupet/RestoreHealth, en/RestoreHealths'appuyant uniquement sur/StartComponentCleanup/StartComponentCleanup: Nettoie le magasin de composants de tous les liens durs rompus
Il est impératif que les utilisateurs de Insider Builds l'exécutent régulièrement en raison des mises à jour fréquentes/RestoreHealth: Vérifie et corrige toute corruption dans le magasin de composants en vérifiant ses sauvegardes de fichiers système par rapport aux bonnes copies connues des serveurs Windows Update via une comparaison de hachage; alors qu'une méthode hors ligne existe [ci-dessous], elle ne corrige pas toujours la corruption
SFCsuppose toujours que le magasin de composants n'est pas corrompu et c'est pourquoi leDISM/RestoreHealthparamètre doit toujours être exécuté avantSFC; ne pas le faire permet à un magasin de composants corrompu de remplacer potentiellement un bon fichier système par un fichier corrompu ou de ne pas corriger%WinDir%complètement la corruption à l'intérieur/ScanNow: Vérifie et corrige toute corruption à l'intérieur%WinDir%en comparant les bonnes copies connues dans le magasin de composants via une comparaison de hachage
DISMet SFCdoivent être exécutés dans l'ordre indiqué, car chacun repose sur ce que fait le précédent:
-
Le magasin de composants doit toujours être nettoyé avant d'exécuter Windows Update, après un problème avec Windows Update, et au moins une fois par mois, car il devient sale au fil du temps à cause des mises à jour qui cassent parfois des liens durs# 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 -
Nécessite une connexion Internet, sinon la méthode hors ligne sera requise:# Online (while booted to Windows): Dism /Online /Cleanup-Image /RestoreHealth # Offline (while booted to WinPE/WinRE): Dism /Image:"D:\Windows" /Cleanup-Image /RestoreHealth- Utilisez le
install.esd||install.wimdepuis l' ISO d'installation Windows pour la version installée (v1909, v2004, etc.) :- Créer un support d'installation Windows 10 → Télécharger l'outil maintenant → Choisir d' installer sur un autre PC
- Montez l'ISO et déterminez l' index du système d'exploitation [image] installé à partir de
install.esd||install.wim:Dism /Get-ImageInfo /ImageFile:"Z:\sources\install.esd" - Spécifiez le numéro d'index à la fin du
/Sourceparamètre:# 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
- Utilisez le
- Redémarrez (si des erreurs sont détectées, examinez le
%WinDir%\Logs\DISM\dism.log, en commençant par le bas)- Les fichiers journaux sont plus faciles à lire et à parcourir via la syntaxe Log dans VS Code
- Les fichiers journaux sont plus faciles à lire et à parcourir via la syntaxe Log dans VS Code
-
# Online (while booted to Windows): Sfc /ScanNow # Offline (while booted to WinPE/WinRE): Sfc /ScanNow /OffBootDir=D:\ /OffWinDir=D:\Windows - Redémarrez (si des erreurs ont été trouvées, examinez le
%WinDir%\Logs\CBS\CBS.log, en commençant par le bas)
Je les lance chaque semaine via le planificateur de tâches pour éviter que des problèmes aléatoires ne se produisent:
Dism_ComponentCleanup.xml
Exécute chaque semaine le dimanche à 11h30Dism_RestoreHealth.xml
Exécute chaque semaine le dimanche à 12h00Sfc_ScanNow.xml
Exécute chaque semaine le dimanche à 13h00
Pour importer dans le planificateur de tâches:
- GUI:
-
+R → Ouvrir:
TaskSchd.msc - Action → Nouveau dossier ... → Nom:
Custom - Action → Importer la tâche ... →
<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