Si une image de Windows devient inutilisable, et que vous avez essayé de la réparer avec l'imagerie de déploiement et de la gestion d'entretien DISM (voir article Réparer Windows 10 avec DISM) et que celle-ci a échoué (par exemple si les fichiers Windows Update sont corrompus ), en dehors de la réinstallation de Windows il vous reste la solution manuelle suivante qui va consister à remplacer les fichiers corrompus par des fichier récupérés sur un autre PC ayant la même version de Windows (et qui n’a pas d’erreurs !).
Exploiter les "Logs"
Ouvrez avec le bloc-notes de Windows par exemple (notepad.exe) le fichier CBS.log qui se trouve en principe dans le répertoire C: \ Windows \ Logs \ CBS \ (ce chemin vous est indiqué à la fin du traitement de la commande SFC /scannow. C’est le fichier qui a tracé tout ce qu’a fait SFC /scannow.
Pour trouver et compter les fichiers qui n’ont pas pu être réparés, dans le bloc note :
- Ouvrez le menu Edition et sélectionnez Rechercher…
- Dans la boite de dialogue entrez cannot puis cliquez sur suivant.
- Dans le fichier cbs.log, les fichiers qui n’ont pu être réparés sont signalés par une phrase comme « Cannot repair member file Amd64\CNBJ2530.DPB of prncacla.inf, Version 6.4.5402 ........................................ (etc. …)
- Tapez plusieurs fois sur la touche F3 jusqu’à obtenir le message “impossible de trouver “cannot” pour compter le nombre de fichiers à remplacer.
1 - Notez par copier-coller (c’est plus simple) l’emplacement et le nom des fichiers à remplacer. Dans CBS.log vous devez retenir pour chaque fichier corrompu la ligne contenant « cannot » ainsi que la ligne suivante. Par exemple la ligne : Cannot repair member file Amd64\CNBJ2530.DPB of prncacla.inf, Version 6.4.5402 …
Et la ligne suivante commençant par Hashes for file member:
Hashes for file member
\SystemRoot\WinSxS\Amd64_prncacla.inf_31bf3856ad364e35_6.4.5402.17410_none_95dd5540d57f8c01\Amd64\CNBJ2530.DPB
Le nom du fichier et son chemin d’accès figurent dans la seconde ligne.
Le chemin est :
\SystemRoot\WinSxS\Amd64_prncacla.inf_31bf3856ad364e35_6.4.5402.17410_none_95dd5540d57f8c01\Amd64
Le nom du fichier est : CNBJ2530.DPB
- Faites attention car les noms des répertoires sont complexes et des fichiers de mêmes noms (mais de différentes versions peuvent être présents dans plusieurs répertoires différents).
- Dans le nom du chemin indiqué, SystemRoot est en fait une variable d’environnement qui contient le chemin du répertoire où est installé Windows.
En général SystemRoot = C:\Windows.
- Dans le chemin il faut donc remplacer SystemRoot par sa valeur. Si Windows est installé dans C:\windows alors notre chemin devient :
C:\Windows\WinSxS\Amd64_prncacla.inf_31bf3856ad364e35_6.4.5402.17410_none_95dd5540d57f8c01\Amd64
Récupérer des fichiers "sains"
2 – Vous allez devoir trouver maintenant un autre PC (celui d’un ami) possédant exactement la même version de Windows.
Pour obtenir la version de Windows dans une fenêtre d’invite de commande tapez winver et sur la touche « Entrée » La fenêtre qui s’affiche indique la version de Windows (dans l’exemple ici c’est la version 1903 9 indice 18362.236 )
3 – Copiez les fichiers sains de ce PC sur une clé USB. Par exemple dans "F:\Reparation\ »
Remplacer les fichiers corrompus
4 – Pour remplacer les fichiers corrompus vous devez préalablement en obtenir le contrôle total avec les commandes :
takeown /f Chemin_et_nom_de_fichier (prise de possession en tant qu'administrateur du fichier système)
icacls Chemin_et_nom_de_fichier /grant Nom d'utilisateur:F (obtenir un accès complet au fichier système)
5 – Vous copiez ensuite les fichiers un par un avec la commande suivante : Copy Chemin_fichier_sain Chemin_fichier corrompu
En reprenant l’exemple précédent de notre fichier ces commandes donnent :
takeown/f "C:Windows\WinSxS\Amd64_prncacla.inf_31bf3856ad364e35_6.3.9600.17415_none_95dd5540d57f8c01\Amd64\CNBJ2530.DPB«icacls "C:Windows\WinSxS\Amd64_prncacla.inf_31bf3856ad364e35_6.3.9600.17415_none_95dd5540d57f8c01\Amd64\CNBJ2530.DPB" /grant Jean-Patrick:Fcopy "F:\Reparation\CNBJ2530.DPB" "C:Windows\WinSxS\Amd64_prncacla.inf_31bf3856ad364e35_6.3.9600.17415_none_95dd5540d57f8c01\Amd64\CNBJ2530.DPB"
- Dans la commande icalc le nom d’utilisateur courant est celui qui s’affiche dans le panneau de configuration -> Comptes d’utilisateurs.
- Dans la commande copy "F:\Reparation\CNBJ2530.DPB" est l’emplacement ou est stocké le fichier sain à copier.
- Rappel : Cliquer ici pour voir l'article comment lancer la console Windows. Pour le mode administrateur il faut faire un clic droit sur l'icône et choisir la commande "exécuter en tant qu'administrateur")
(Reprise et mise à jour d'un article de 2017)