Il m'a fallu plusieurs heures pour résoudre le problème car le magasin de composants local était corrompu et les ordinateurs accédaient à un serveur WSUS local au lieu du serveur de mise à jour public de Microsoft (et parce que j'utilise très rarement Dism). Pour référence et pour aider d'autres personnes avec le même problème, je vais écrire une description du problème et proposer une solution.
Depuis la mise à niveau vers Windows 10 Pro version 1511 (Build 10586), j'ai un problème avec un fichier opencl.dll corrompu classé à plusieurs endroits.
J'ai essayé sfc.exe /scannow
, mais le problème n'a pas été résolu. Les messages d'erreur sont, entre autres:
2015-12-08 08:50:43, Info CSI 00003c3a Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info CSI 00003c3b [SR] Cannot repair member file [l:10]"opencl.dll" of microsoft-windows-RemoteFX-clientVM-RemoteFXWDDMDriver-WOW64-C, version 10.0.10586.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2015-12-08 08:50:43, Info CSI 00003c3c [SR] This component was referenced by [l:125]"Microsoft-Windows-RemoteFX-VM-Setup-Package~31bf3856ad364e35~amd64~~10.0.10586.0.RemoteFX clientVM and UMTS files and regkeys"
2015-12-08 08:50:43, Info CSI 00003c3d Hashes for file member \??\C:\WINDOWS\SysWOW64\opencl.dll do not match actual file [l:10]"opencl.dll" :
Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info CSI 00003c3e Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info CSI 00003c3f [SR] Could not reproject corrupted file [l:23 ml:24]"\??\C:\WINDOWS\SysWOW64"\[l:10]"opencl.dll"; source file in store is also corrupted
Bon, le problème est clair maintenant. Malheureusement, SFC est incapable de résoudre la corruption car le magasin de composants locaux a également été corrompu. Malheureusement, j'ai perdu les messages d'erreur indiquant les corruptions du magasin de composants.
Alors j'ai essayé Dism /Online /Cleanup-Image /RestoreHealth
en vain. Il échoue avec l'erreur 0x800f081f , indiquant un autre problème avec les fichiers source.
2015-12-08 08:57:35, Info CBS Exec: Download qualification evaluation, business scenario: Manual Corruption Repair
2015-12-08 08:57:35, Info CBS Exec: Clients specified using Windows Update.
2015-12-08 08:57:35, Info CBS WU: Update service is not default AU service, skip. URL: https://fe2.update.microsoft.com/v6/, Name: Microsoft Update
2015-12-08 08:57:35, Info CBS WU: Update service is not default AU service, skip. URL: https://fe2.ws.microsoft.com/v6/, Name: Windows Store
2015-12-08 08:57:35, Info CBS WU: Update service is not default AU service, skip. URL: https://fe3.delivery.mp.microsoft.com/, Name: Windows Store (DCat Prod)
2015-12-08 08:57:35, Info CBS WU: WSUS service is the default, URL: (null), Name: Windows Server Update Service
2015-12-08 08:57:35, Info CBS DWLD:Search is done, set download progress to 20 percent.
2015-12-08 08:57:35, Info CBS Nothing to download, unexpected
2015-12-08 08:57:35, Info CBS Failed to collect payload and there is nothing to repair. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2015-12-08 08:57:35, Info CBS Failed to repair store. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
En regardant les messages d'erreur, il devient clair que Windows est configuré pour utiliser notre serveur WSUS local et par conséquent, Dism ne peut pas extraire le fichier valide à partir des référentiels. Bien que je sois certain de pouvoir configurer WSUS de manière à fournir les fichiers nécessaires, je ne sais pas comment et j’ai besoin d’une solution rapide. (Si quelqu'un sait comment configurer WSUS en conséquence, veuillez fournir des informations).
Limiter l'accès au stockage local en ajoutant le paramètre /LimitAccess
serait inutile, car le magasin de composants locaux est également corrompu, comme indiqué précédemment.
J'ai rencontré ce problème sur deux machines. Une actualisation de Windows 10 n'a pas résolu le problème.
la source
Réponses:
Pour résoudre ce problème, vous devez disposer de l'ISO de la version exacte que vous avez installée.
mkdir C:\WIM
Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
Cela devrait résoudre le problème.
Modifier
Comme indiqué dans les commentaires, il pourrait y avoir une approche plus directe. Le TL; DR est, cela n'a pas fonctionné pour moi, d'où mon approche plus détaillée. Mais je suis intéressé si vous aviez des problèmes avec l'approche directe. Commentez s'il vous plaît.
la source
/source:wim
paramètre dans la documentation officielle des options de ligne de commande Dism .À partir de divers forums sur Internet, j'ai assemblé la procédure de réparation suivante:
MediaCreationTool.exe
pourc:\temp\windows.iso
c:\temp\windows.iso
dans un dossierc:\temp\windows
Convertir
install.esd
eninstall.wim
Vérifier l'index et la version de Windows dans l' index de
.wim
fichier-
est utilisée pour la prochaine commande Dism en paramètre/Source:wim:path_to_wim:[index]
Restaurez les composants d'intégrité Windows à partir de l'image Windows téléchargée et convertie (wim):
Réparer les fichiers corrompus:
Il réparera les fichiers corrompus - message de réussite:
Windows Resource Protection found corrupt files and successfully repaired them.
Vérifiez à nouveau les fichiers système pour vous assurer d'une réparation réussie:
Message de réussite après numérisation:
Windows Resource Protection did not find any integrity violations.
la source
Un ESD n'est pas un WIM "crypté", c'est un WIM très compressé / réencodé très différemment (avec une structure plus complexe).
Un WIM est simplement compressé "rapidement" par des unités incassables de 4 ou 16 Ko, utilisant une compression Huffmann rapide. Un ESD utilise une compression LZ plus avancée sans limitations de taille de bloc. Cette compression ne permet pas d'ouvrir l'image en mode lecture-écriture car la compression est globale (chaque fichier de l'archive n'est plus compressé séparément, plusieurs fichiers logiques peuvent partager le stockage réel des segments, pour atteindre une compression plus élevée. niveau, notamment lorsqu'il existe de nombreux petits fichiers contenant des parties d'en-tête communes, telles que des collections d'icônes ou des parties de leurs données de signature numérique, des mentions de copyright, des en-têtes HTML, des scripts incorporés, etc.).
Un SWM est un fichier WIM en plusieurs parties divisé en plusieurs fichiers de tailles plus petites avec une taille maximale (approximative), mais il est toujours inscriptible et peut être stocké sur plusieurs DVD.
Les fournisseurs CBS autorisent plusieurs formats d’archivage pris en charge par DISM, notamment les fichiers WIM, CAB, ZIP, VHD, VHDX, ISO multisessions. Mais Windows est livré avec deux fournisseurs intégrés pour les formats WIM et ESD (ESD est nouveau pour Windows 10, avec Windows 8, seul le format WIM était pris en charge, mais les images étaient plus grandes)
Le format ESD a été adapté pour permettre à la distribution multilingue complète de Windows 10 de s’adapter à un seul DVD de moins de 3 Go ...
Vous pouvez transformer une ESD en WIM, mais le résultat sera un fichier beaucoup plus volumineux. La conversion inverse est également possible (afin que vous puissiez lire / écrire dans le WIM développé) pour le ré-emballer dans un nouvel ESD. Décompresser une ESD en WIM est relativement rapide, mais compresser une WIM en ESD nécessite beaucoup de ressources de traitement et est beaucoup plus long (c'est pourquoi vous ne pouvez pas lire / écrire directement dans une ESD mais vous pouvez le faire assez facilement dans un WIM avec L'utilisation du processeur).
Lorsque vous "montez" un ESD avec DISM, la première chose à faire est de développer l'ESD dans un stockage temporaire et de le gérer comme s'il s'agissait d'un WIM, afin de pouvoir mettre à jour les fichiers de ce stockage local. Son démontage nécessite deux étapes: recréer un WIM (assez rapide), puis le ranger de nouveau dans un ESD (très lent).
la source
J'ai résolu le problème avec opengl.dll comme suit:
Montez l'image Windows 10.
Dism / Online / Cleanup-Image / RestoreHealth / Source: esd: F: \ sources \ install.esd \ 1 \ Windows \ WinSxS \ wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.10.10586.010
sfc / scannow
Bonne chance!
la source
J'ai passé quelques jours sur ces chemins et j'ai finalement trouvé une solution à ma situation. J'utilise Windows 10 version 1511 Build 10586.545. Voici ma progression:
À partir de là, Windows Update a recommencé à fonctionner.
En résumé, si vous rencontrez des problèmes avec ces erreurs et que rien ne semble fonctionner, essayez de désactiver les pilotes NVIDIA GeForce, puis essayez de suivre certaines de ces étapes (ou de les copier manuellement dans une version propre de la DLL).
la source
En raison de l'absence d'une copie locale et de l'impossibilité de télécharger le fichier ISO pour une raison distincte (l'ISO n'est pas du type Windows 10 que j'ai installé). Il existe une solution de correctif que j'ai utilisée qui implique le téléchargement d'un fichier spécial appelé "SFCFix ":
Veuillez noter que l’exécution du fichier SFCFix.exe sans le correctif ZIP est un processus long et lent qui ne produit que très peu de résultats. Vous devez l’exécuter avec la méthode de glisser / déposer du fichier ZIP et le résultat est presque instantané.
la source
Vous devriez pouvoir utiliser une image esd, conformément à l'article de technet de DISM. Une image ESD (Electronic Software Delivery) est simplement une version chiffrée d'un fichier WIM et utilise également un algorithme de compression bien meilleur que le format WIM (généralement environ 1,5 fois mieux).
Si tout ce que l'on a est un ESD, mais préfère utiliser un WIM, vous pouvez convertir un ESD en WIM avec la commande d'exportation DISM. Vous pouvez également convertir un fichier WIM en fichier ESD en spécifiant / compresser: récupération dans la commande d'exportation ou de capture. La conversion de l'un en l'autre nécessite beaucoup de ressources. C'est pourquoi il est recommandé d'utiliser le script ESD vers WIM, écrit il y a de nombreuses années et disponible sur le forum MSFN. À l'aide du script, environ 50% seulement des ressources système sont dédiées à l'exportation, par rapport aux 90% et plus généralement utilisées pour l'exportation.
la source
Je viens d’aller sur un autre ordinateur Windows 10 Pro x64 et de copier le fichier opencl.dll (à partir du même répertoire). Ensuite, j'ai pris possession du mauvais opencl.dll, je l'ai renommé opencl.old et je l'ai copié dans le nouveau. Redémarrez en mode sans échec et exécutez sfc / scannow et tout va bien. Dans mon cas, c’était le SEUL mauvais fichier répertorié dans cbs.log ... Je peux voir où il pourrait être préférable de faire fonctionner sfc si vous avez beaucoup de fichiers corrompus et que vous ne voulez pas les patcher individuellement. Mais si votre problème n’est que celui de la DLL, une simple copie semble fonctionner.
la source
Il semble que l'image d'installation (
install.esd
) du support d'installation de Update du créateur est incompatible avec la méthode DISM décrite ici. Vous obtiendrez une erreur0x800f081f
quel que soit le type de commande que vous tapez. Cela n’aide pas non plus d’extraire leinstall.wim
fichier correct du fichier ESD. Enfin, j'ai même essayé de monter le fichier WIM, mais en vain.Voir également les discussions sur https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723
Mise à jour: L'erreur persistante n'a rien à voir avec la commande dism ou les fichiers wim. Cela est dû à un package nommé Microsoft-Windows-TestRoot-and-FlightSigning-Package pour lequel aucune source de travail n'est disponible. Les fichiers sont dans C: \ Windows \ Servicing \ Packages et doivent être déplacés de là. En outre, il existe deux références dans le registre qui doivent être supprimées. Voir le fil symbolique lié pour plus de détails.
la source