Ich habe mehrere Stunden gebraucht, um das Problem zu beheben, da der lokale Komponentenspeicher beschädigt war und die Computer auf einen lokalen WSUS-Server statt auf den öffentlichen Aktualisierungsserver von Microsoft zugreifen (und weil ich Dism sehr selten verwende). Als Referenz und um anderen mit dem gleichen Problem zu helfen, werde ich eine Problembeschreibung aufschreiben und eine Lösung anbieten.
Seit dem Upgrade auf Windows 10 Pro Version 1511 (Build 10586) ist an mehreren Stellen ein Problem mit einer beschädigten Datei opencl.dll aufgetreten .
Ich habe es versucht sfc.exe /scannow
, aber das Problem konnte nicht behoben werden. Die Fehlermeldungen sind unter anderem:
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
Okay, das Problem ist jetzt klar. Leider kann SFC die Beschädigung nicht beheben, da der lokale Komponentenspeicher ebenfalls beschädigt wurde. Leider habe ich die Fehlermeldungen verloren, die auf die Beschädigung des Komponentenspeichers hinweisen.
Also habe ich erfolglos versucht Dism /Online /Cleanup-Image /RestoreHealth
. Der Fehler 0x800f081f weist auf ein anderes Problem mit den Quelldateien hin.
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]
Anhand der Fehlermeldungen wird deutlich, dass Windows für die Verwendung unseres lokalen WSUS-Servers konfiguriert ist und Dism daher die gültige Datei nicht aus den Repositorys abrufen kann. Obwohl ich sicher bin, dass ich WSUS so konfigurieren kann, dass die erforderlichen Dateien bereitgestellt werden, weiß ich nicht, wie und benötige eine schnelle Lösung. (Wenn jemand weiß, wie WSUS entsprechend konfiguriert wird, geben Sie bitte Informationen an.)
Das Einschränken des Zugriffs auf den lokalen Speicher durch Hinzufügen des Parameters /LimitAccess
ist sinnlos, da der lokale Komponentenspeicher ebenfalls beschädigt ist, wie bereits erwähnt.
Ich habe dieses Problem auf zwei Computern festgestellt. Eine Aktualisierung von Windows 10 hat das Problem nicht behoben.
quelle
Antworten:
Um dieses Problem zu beheben, benötigen Sie die ISO des exakten Builds, den Sie installiert haben.
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
Das sollte das Problem beheben.
Bearbeiten
Wie in den Kommentaren erwähnt, könnte es einen direkteren Ansatz geben. Die TL; DR ist, dass es bei mir nicht funktioniert hat, daher meine detailliertere Herangehensweise. Es interessiert mich aber, ob Sie Probleme mit der direkten Ansprache hatten. Bitte kommentieren.
quelle
/source:wim
in der offiziellen Dokumentation für die Dism-Befehlszeilenoptionen nichts in Bezug auf den Parameter finden konnte .Aus verschiedenen Foren im Internet habe ich folgende Reparaturverfahren zusammengestellt:
MediaCreationTool.exe
to herunterc:\temp\windows.iso
c:\temp\windows.iso
in einen Ordner zu extrahierenc:\temp\windows
Konvertieren
install.esd
nachinstall.wim
Index prüfen und Windows-Version im
.wim
Dateiindex-
wird für den nächsten Befehl Dism im Parameter verwendet/Source:wim:path_to_wim:[index]
Stellen Sie die Komponenten von Integritätsfenstern aus dem heruntergeladenen und konvertierten Windows-Image (wim) wieder her:
Reparieren Sie beschädigte Dateien:
Beschädigte Dateien werden repariert - Erfolgsmeldung:
Windows Resource Protection found corrupt files and successfully repaired them.
Überprüfen Sie die Systemdateien erneut, um eine erfolgreiche Reparatur sicherzustellen:
Erfolgsmeldung nach dem Scan:
Windows Resource Protection did not find any integrity violations.
quelle
Eine ESD ist kein "verschlüsseltes" WIM, es ist ein WIM, das sehr unterschiedlich stark gepackt / neu codiert wurde (mit einer komplexeren Struktur).
Ein WIM wird nur durch unzerbrechliche Einheiten von 4 KB oder 16 KB mit einer schnellen Huffmann-Komprimierung "schnell" komprimiert. Eine ESD verwendet eine erweiterte LZ-basierte Komprimierung ohne Blockgrößenbeschränkungen. Diese Komprimierung ermöglicht nicht, dass das Bild im Lese- / Schreibmodus geöffnet wird, da die Komprimierung global ist (jede Datei im Archiv wird nicht mehr separat komprimiert, mehrere logische Dateien können den tatsächlichen Speicher von Segmenten gemeinsam nutzen, um eine höhere Komprimierung zu erreichen Ebene, insbesondere wenn es viele kleine Dateien mit gemeinsamen Überschriften gibt (z. B. Sammlungen von Symbolen oder Teile ihrer digitalen Signaturdaten, Copyright-Vermerke, HTML-Überschriften, eingebettete Skripte usw.).
Ein SWM ist ein mehrteiliges WIM, das in mehrere Dateien mit kleineren Größen und einer (groben) Maximalgröße aufgeteilt wurde, aber dennoch beschreibbar ist und auf mehreren DVDs gespeichert werden kann.
CBS-Anbieter ermöglichen verschiedene Archivierungsformate, die von DISM unterstützt werden können, einschließlich WIM, CAB, ZIP, VHD, VHDX und Multisession-ISOs. Unter Windows 8 wurde nur das WIM-Format unterstützt, die Bilder waren jedoch größer.
Das ESD-Format wurde so optimiert, dass die vollständige mehrsprachige Distribution von Windows 10 auf eine einzelne DVD mit weniger als 3 GB passt ...
Sie können eine ESD in WIM umwandeln, das Ergebnis ist jedoch eine viel größere Datei. Die inverse Konvertierung ist auch möglich (so dass Sie im erweiterten WIM lesen und schreiben können), um es erneut in eine neue ESD zu packen. Das Dekomprimieren einer ESD in WIM ist relativ schnell, aber das Komprimieren einer WIM in ESD erfordert viel CPU-Ressourcen und ist viel länger (aus diesem Grund können Sie nicht direkt in eine ESD lesen und schreiben, aber Sie können dies in einer WIM mit bescheidener Geschwindigkeit recht einfach tun CPU auslastung).
Wenn Sie eine ESD mit DISM "mounten", müssen Sie zunächst die ESD in einen temporären Speicher erweitern und darauf reagieren, als wäre es ein WIM, damit Sie Dateien in diesem lokalen Speicher aktualisieren können. Das Aufheben der Bereitstellung erfordert zwei Schritte: Neuerstellen eines WIM (ziemlich schnell) und erneutes Packen in eine ESD (sehr langsam).
quelle
Ich habe das Problem mit opengl.dll folgendermaßen gelöst:
Hängen Sie das Windows 10-Abbild ein.
Dism / Online / Cleanup-Image / RestoreHealth / Quelle: esd: F: \ sources \ install.esd \ 1 \ Windows \ WinSxS \
sfc / scannow
Viel Glück!
quelle
Ich habe ein paar Tage damit verbracht, diese Wege zu beschreiten und schließlich eine Lösung für meine Situation gefunden. Ich verwende Windows 10 Version 1511 Build 10586.545. Hier ist mein Fortschritt:
Ab hier funktioniert Windows Update wieder.
Wenn Sie also mit diesen Fehlern zu kämpfen haben und nichts zu funktionieren scheint, deaktivieren Sie die NVIDIA GeForce-Treiber und versuchen Sie dann einige dieser Schritte (oder kopieren Sie sie manuell in einer sauberen Version der DLL).
quelle
Da ich keine lokale Kopie besitze und aus einem anderen Grund die ISO-Datei nicht herunterladen kann (die ISO war nicht vom Windows 10-Typ, den ich installiert habe), wurde hier eine Hotfix-Lösung verwendet, bei der eine Spezialdatei mit dem Namen "SFCFix" heruntergeladen wurde ":
Bitte beachten Sie, dass das Ausführen der SFCFix.exe-Datei ohne den Hotfix ZIP ein langer, langsamer Prozess ist, der nur sehr wenig bewirkt. Sie müssen ihn mit der Drag / Drop-Methode für ZIP-Dateien ausführen, und das Ergebnis ist fast sofort.
quelle
Sie sollten in der Lage sein, ein ESD-Image gemäß dem DISM-Technet-Artikel zu verwenden. Ein ESD-Image (Electronic Software Delivery) ist einfach eine verschlüsselte Version eines WIM und verwendet zufällig einen weitaus besseren Komprimierungsalgorithmus als das WIM-Format (im Allgemeinen eine um das 1,5-fache bessere Komprimierung).
Wenn nur eine ESD vorhanden ist, Sie aber lieber eine WIM verwenden möchten, können Sie eine ESD mit dem Befehl DISM export in WIM konvertieren. Sie können eine WIM-Datei auch in eine ESD-Datei konvertieren, indem Sie im Export- oder Erfassungsbefehl / compress: recovery angeben. Das Konvertieren von einem in ein anderes ist ressourcenintensiv. Aus diesem Grund wird empfohlen, das ESD-zu-WIM-Skript zu verwenden, das vor Jahren geschrieben wurde und im MSFN-Forum verfügbar ist. Unter Verwendung des Skripts werden nur ~ 50% der Systemressourcen für den Export verwendet, verglichen mit den 90% +, die im Allgemeinen für den Export verwendet werden.
quelle
Ich bin gerade zu einem anderen Windows 10 Pro x64-Computer gegangen und habe die Datei opencl.dll (aus demselben Verzeichnis) kopiert. Dann habe ich die schlechte opencl.dll übernommen, in opencl.old umbenannt und in die neue kopiert. Starten Sie den Computer wieder im abgesicherten Modus und führen Sie sfc / scannow aus. In meinem Fall war dies die EINZIGE schlechte Datei in cbs.log. Ich kann sehen, wo es besser ist, sfc arbeiten zu lassen, wenn Sie viele beschädigte Dateien haben und nicht jede für sich patchen möchten. Aber wenn Ihr Problem nur die eine DLL ist, dann scheint eine einfache Kopie zu funktionieren.
quelle
Es scheint, dass das Installationsimage (
install.esd
) vom Creator's Update-Installationsmedium nicht mit der hier beschriebenen DISM-Methode kompatibel ist. Sie erhalten eine Fehlermeldung,0x800f081f
egal welche Art von Befehl Sie eingeben. Es hilft auch nicht, das richtigeinstall.wim
aus der ESD-Datei zu extrahieren . Schließlich habe ich sogar versucht, die WIM-Datei ohne Erfolg zu mounten.Siehe auch Diskussionen unter https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723
Update: Der anhaltende Fehler hat nichts mit dem Befehl dism oder den WIM-Dateien zu tun. Dies liegt an einem Paket mit dem Namen Microsoft-Windows-TestRoot-and-FlightSigning-Package, für das keine funktionierenden Quellen verfügbar sind. Die Dateien befinden sich in C: \ Windows \ Servicing \ Packages und müssen von dort entfernt werden. Außerdem gibt es zwei Verweise in der Registrierung, die gelöscht werden müssen. Weitere Informationen finden Sie im verknüpften systematischen Thread.
quelle