Frage Wie beschädigte opencl.dll in Windows 10 zu beheben, wenn SFC und DISM fehlschlagen?


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 anstelle des öffentlichen Update-Servers von Microsoft zugreifen (und weil ich Dism sehr selten verwende). Als Referenz und um anderen Leuten 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) habe ich ein Problem mit einem beschädigten Feld opencl.dll an mehreren Orten.

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. Unglücklicherweise, SFC ist nicht in der Lage, die Beschädigung zu 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 es versucht Dism /Online /Cleanup-Image /RestoreHealth umsonst. Es schlägt mit Fehler fehl 0x800f081f, zeigt ein anderes Problem mit den Quelldateien an.

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]

Wenn Sie sich die Fehlermeldungen ansehen, wird klar, dass Windows für die Verwendung unseres lokalen WSUS-Servers eingerichtet ist und Dism daher die gültige Datei nicht aus den Repositorys abrufen kann. Obwohl ich sicher bin, dass ich WSUS irgendwie konfigurieren kann, um die notwendigen Dateien bereitzustellen, weiß ich nicht, wie und ich brauche eine schnelle Lösung. (Wenn jemand weiß, wie er WSUS entsprechend konfiguriert, geben Sie bitte Informationen an).

Beschränken des Zugriffs auf den lokalen Speicher durch Hinzufügen des Parameters /LimitAccess wäre nutzlos, da der lokale Komponentenspeicher ebenfalls beschädigt ist, wie bereits erwähnt.

Ich habe dieses Problem auf zwei Maschinen erlebt. EIN Aktualisierung von Windows 10 hat das Problem nicht behoben.


31
2017-12-08 08:44


Ursprung


fwiw hier ist ein langer Thread Antworten.microsoft.com/en-us/windows/forum/... über Probleme mit dieser DLL. - Rory


Antworten:


Um dieses Problem zu beheben, müssen Sie die ISO des exakten Builds haben, den Sie installiert haben.

  1. Mounten Sie das ISO-Image.
  2. Erstellen Sie ein temporäres Verzeichnis, um die Windows Image File (WIM) bereitzustellen.
    mkdir C:\WIM
  3. Mounten Sie die WIM-Datei.
    Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
  4. Run Dism mit den folgenden Parametern.
    Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
  5. Wenn Sie fertig sind, hängen Sie das Image ab und löschen Sie den Ordner
    Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
  6. Der Computer muss neu gestartet werden, oder SFC und DISM zeigen weiterhin Fehler an.

Das sollte das Problem beheben.

Bearbeiten
Wie in den Kommentaren ausgeführt, könnte es einen direkteren Ansatz geben. Die TL, DR ist, dass es für mich nicht funktioniert hat, daher meine detailliertere Vorgehensweise. Aber ich bin interessiert, wenn Sie Probleme mit dem direkten Ansatz haben. Bitte kommentieren.


41
2017-12-08 08:58



Sie können auf die WIM zeigen, ohne dass Sie die WIM mounten müssen: superuser.com/a/870956/174557 - magicandre1981
@ magicandre1981 danke für deinen Kommentar. Ich las darüber und versuchte es ohne Erfolg. Es ist immer mit einem Fehler gescheitert, das war 0x800f081f ich erinnere mich richtig. Es war überraschend zu sehen, dass ich nichts über die /source:wim Parameter in der offiziellen Dokumentation für die Die Befehlszeilenoptionen von Dism. - Daniel
Ich lese es hier im Inhalt um Funktionen zu aktivieren: blogs.technet.com/b/joscon/archiv/2013/03/29/... - magicandre1981
Dies half auch anderen Nutzern: borncity.com/blog/2015/12/09/... Seltsam, dass Montage funktioniert, aber die WIM nicht direkt passiert. - magicandre1981
Nach dem Herunterladen des Windows 10-Images mit dem Media Creation Tool, hier: microsoft.com/en-ca/software-download/windows10 Das resultierende img hatte eine install.esd, die in ein WIM konvertiert werden musste, um von Dism gemountet zu werden. Ich habe NTLite dazu benutzt. Danach funktionierten Daniels Anweisungen gut. Beachten Sie, dass der Parameter / index im dritten Schritt wahrscheinlich die Version von Windows, Pro oder Home widerspiegelt, die Sie wiederherstellen (mit anderen Worten: / index: 1 für Pro und / index: 2 für Home) - Eli B.


Aus verschiedenen Foren im Internet habe ich folgendes Reparaturverfahren zusammengestellt:

  1. Laden Sie MediaCreationTool von http://go.microsoft.com/fwlink/?LinkId=691209
  2. Laden Sie Windows 10 Pro ISO mit herunter MediaCreationTool.exe zu c:\temp\windows.iso
  3. Verwenden Sie 7-Zip für die Extraktionsdatei c:\temp\windows.iso zum Ordner c:\temp\windows
  4. Konvertieren install.esd zu install.wim

    Dism /Export-Image /SourceImageFile:c:\temp\windows\sources\install.esd /SourceIndex:1 /DestinationImageFile:c:\temp\windows\sources\install.wim /compress:max

  5. Überprüfen Sie die Index- und Windows-Version in .wim Datei
    -Index wird für den nächsten Dism-Befehl im Parameter verwendet /Source:wim:path_to_wim:[index]

    Dism /Get-WimInfo /wimFile:c:\temp\windows\sources\install.wim

  6. Wiederherstellen von Health Windows-Komponenten aus heruntergeladenen und konvertierten Windows-Images (WIM):

    Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:c:\temp\windows\sources\install.wim:1 /LimitAccess

  7. Beschädigte Dateien reparieren:

    sfc /scannow

    Es wird beschädigte Dateien reparieren - Erfolgsmeldung: Windows Resource Protection found corrupt files and successfully repaired them.

  8. Starten Sie Windows neu
  9. Überprüfen Sie die Systemdateien erneut, um eine erfolgreiche Reparatur zu gewährleisten:

    sfc /scannow

    Erfolgsmeldung nach dem Scan: Windows Resource Protection did not find any integrity violations.


10
2018-05-16 17:46



Danke endlich meine Windows 10-Installation, die ich vor kurzem eine saubere Installation getan habe. Scheint kaputt zu werden und sfc versagt bald, nachdem sogar eine saubere Installation durchgeführt wurde! Anyways wird sehen, wie lange es dieses Mal fixiert bleibt! Schätze, Microsoft hat es immer noch nicht im letzten 10-Update-Update behoben, da das bekannte Problem für 1511 zu sein scheint Nachrichten.softpedia.com/news/... p.s. Ich musste nicht Schritt 4 tun, da install.wim schon da war, als ich die Windows ISO extrahierte. - daveangel
Danke für die Antwort. Der Systemdatei-Checker wird nach der Installation von Grafik-Verzeichnissen beschädigt. Aber jetzt ist genug, um das System nur mit dem Ausführen von SFC / SCANNOW zu reparieren - Es scheint jetzt die richtige Version von opencl.dll im Ordner winsxs verfügbar. PS: Es ist wahr, Schritt 4 kann weggelassen werden, wenn Sie bootfähige ISO herunterladen, aber Media Creation Tool nur die ESD-Datei herunterladen (Version für die Aktualisierung von Windows 10 entwickelt). Media Creation Tool ist die beste Wahl für den automatischen Download korrekte Installationsmedien :-) - kapitanrum
Schritt 4 (Extrahieren der WIM-Datei) hat es für mich getan. Ausgezeichneter Führer. Vielen Dank. - Ravi Wallau
Schritt 6 scheitert für mich mit "die Quelldateien können nicht gefunden werden", Fehler 0x800f091f - simpleuser
Ich googelte für Fehler 0x800f091f und Problem kann mit der Installation von .NET Framework 3.5 sein. Wenn Sie nur Version 4+ haben, versuchen Sie auch, Version 3.5 zu installieren. Versuchen Sie MS Installationsanleitung: msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx - kapitanrum


Eine ESD ist keine "verschlüsselte" WIM, sondern eine WIM, die sehr unterschiedlich (mit einer komplexeren Struktur) hochgepackt / reencodiert wurde.

Ein WIM wird einfach "schnell" durch unzerbrechliche Einheiten von 4 KB oder 16 KB komprimiert, wobei eine schnelle Huffmann-Komprimierung verwendet wird. Eine ESD verwendet eine erweiterte LZ-basierte Komprimierung ohne Blockgrößenbeschränkungen. Diese Komprimierung erlaubt es nicht, dass das Bild im Lese-Schreib-Modus offen ist, da die Komprimierung global ist (jede Datei im Archiv wird nicht länger separat komprimiert, mehrere logische Dateien können sich den tatsächlichen Speicher von Segmenten teilen, um eine wesentlich höhere Komprimierung zu erreichen) Ebene, insbesondere wenn es viele kleine Dateien mit gemeinsamen Header-Teilen gibt, wie zum Beispiel Sammlungen von Icons oder Teile ihrer digitalen Signaturdaten, Urheberrechtshinweise, HTML-Header, eingebettete Skripte und so weiter).

Ein SWM ist ein mehrteiliges WIM, das in mehrere Dateien mit kleineren Größen mit einer (ungefähren) Maximalgröße aufgeteilt wurde, aber weiterhin beschreibbar ist und auf mehreren DVDs gespeichert werden kann.

CBS-Anbieter erlauben mehrere Archivformate, die von DISM unterstützt werden können, einschließlich WIM, CAB, ZIP, VHD, VHDX, Multisession-ISOs ... Aber Windows kommt mit zwei eingebauten Providern für die WIM- und ESD-Formate (ESD ist neu in Windows 10, mit Windows 8 wurde nur das WIM-Format unterstützt, aber die Bilder waren größer)

Das ESD-Format wurde so angepasst, dass die vollständige mehrsprachige Verteilung von Windows 10 auf eine einzelne DVD mit weniger als 3 GB ...

Sie können eine ESD in WIM umwandeln, aber das Ergebnis wird eine viel größere Datei sein. Die umgekehrte Konvertierung ist ebenfalls möglich (so dass Sie im erweiterten WIM lesen und schreiben können), um sie erneut in eine neue ESD zu packen. Das Dekomprimieren einer ESD zu WIM ist relativ schnell, aber das Komprimieren einer WIM zu ESD erfordert viel CPU-Ressourcen und ist viel länger (deshalb können Sie nicht direkt in eine ESD schreiben, aber Sie können das recht einfach in einer WIM mit bescheidenen CPU auslastung).

Wenn Sie eine ESD mit DISM "mounten", ist das erste, was es tun wird, die ESD in einen temporären Speicher zu erweitern und darauf zu reagieren, als ob es eine WIM wäre, so dass Sie Dateien in diesem lokalen Speicher aktualisieren können. Um es zu entfernen, werden zwei Schritte benötigt: ein WIM (ziemlich schnell) neu erstellen und dann erneut in ein ESD (sehr langsam) packen.


4
2018-06-04 08:43





Ich habe das Problem mit opengl.dll wie folgt gelöst:

  1. Stellen Sie das Windows 10-Image bereit.

  2. Dism / Online / Cleanup-Image / RestoreHealth / Quelle: esd: F: \ sources \ install.esd \ 1 \ Windows \ WinSxS \ wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22 \

  3. sfc / scannow

Viel Glück!


2
2017-12-21 21:46



ESD ISO wird Windows Image nicht wiederhergestellt. Sie müssen NUR WIM ISO verwenden, von dem Sie herunterladen können microsoft.com/de-de/software-download/techbench - 23W


Ich verbrachte einige Tage damit, diese Wege zu gehen und fand schließlich eine Lösung für meine Situation. Ich verwende Windows 10 Version 1511 Build 10586.545. Hier ist meine Progression:

  1. Dies begann für mich mit einem Windows Update Fehler (Fehler 0x800705b4).
  2. Ich habe diesen Fehler dann gejagt, indem ich Windows Update-Problembehandlungen, WUResets, das Deaktivieren von Antivirenprogrammen usw. durchgeführt habe. Dieser Link ist ein guter Artikel, der Optionen für dieses Problem gibt (obwohl sie mir nicht geholfen haben)
  3. Ich ging dann den DISM- und SFC-Pfad hinunter. Dieser ServerFault-Post war bei diesem Versuch sehr hilfreich. Leider hat keine dieser Optionen geholfen. Ich habe immer wieder erfahren, dass ich eine korrupte opencl.dll-Datei habe und alle möglichen Varianten von DISM / RestoreHealth funktionieren nicht. Ich habe immer 0x800f081f bekommen (Quelldateien konnten nicht gefunden werden)
  4. Als nächstes versuchte ich, opencl.dll manuell von einem sauberen ISO in C: \ Windows \ SysWOW64 zu kopieren. Das hat nie funktioniert, selbst nachdem ich mit der Übernahme von Eigentumsrechten beschäftigt war. Schließlich deaktivierte ich den NVIDIA GeForce GPU-Treiber im Geräte-Manager (ließ einen Intel-Treiber weiterhin anzeigen) und konnte die saubere opencl.dll in C: \ Windows \ kopieren SysWOW64.

Von hier aus hat Windows Update wieder funktioniert.

Wenn Sie also mit diesen Fehlern kämpfen und nichts zu funktionieren scheint, versuchen Sie, die NVIDIA GeForce-Treiber zu deaktivieren und dann einige dieser Schritte zu versuchen (oder manuell eine saubere Version der DLL zu kopieren).


2
2017-08-26 14:46





Da ich keine lokale Kopie habe und aus einem anderen Grund die ISO-Datei nicht herunterladen konnte (die ISO war nicht vom Windows 10-Typ, den ich installiert habe), gibt es a Hotfix-Lösung hier was ich benutzte, was das Herunterladen einer speziellen Datei namens "SFCFix" beinhaltet:

SFCFix ist ein brilliantes kleines Dienstprogramm, das in der Lage ist, dieses Problem zu beheben, indem es die beschädigte DLL-Datei repariert / ersetzt.

Nachdem die ausführbare Datei für SFCFix heruntergeladen wurde, verschieben Sie sie auf Ihren Desktop.

EIN ZIP-Datei, die alles enthält, was SFCFix benötigt um Ihre korrupte opencl.dll Datei zu reparieren / zu ersetzen. Sie werden von der Website aufgefordert, sich dort zu registrieren, um auf die ZIP-Datei zugreifen zu können. Sie sollten dies tun, da es völlig kostenlos ist.

Sobald sfcfix.zip heruntergeladen wurde, verschieben Sie es auf Ihren Desktop. Schließen Sie alle geöffneten Programme. Ziehen Sie die ZIP-Datei in die ausführbare Datei für das SFCFix-Programm und geben Sie sie dann frei.

SFCFix wird gestartet und beginnt, den Fix für die beschädigte DLL-Datei anzuwenden. Lass es seine Magie wirken.

Sobald SFCFix fertig ist, wird eine Datei mit dem Namen erstellt SFCFix.txt auf deinem Desktop. Öffnen Sie diese Datei, und wenn SFCFix die beschädigte opencl.dll-Datei reparieren / ersetzen konnte,

Beachten Sie, dass die Datei SFCFix.exe ausgeführt wird ohne Das Hotfix-ZIP wird ein langer langsamer Prozess sein, der sehr wenig erreicht, Sie müssen es mit der ZIP-Datei Drag / Drop-Methode ausführen, und das Ergebnis ist fast sofort.


1
2018-06-14 08:26





Sie sollten in der Lage sein, ein ESD-Image gemäß dem DISM-Technet-Artikel zu verwenden. Ein ESD-Bild (Electronic Software Delivery) ist einfach eine verschlüsselte Version eines WIM und verwendet außerdem einen weitaus besseren Komprimierungsalgorithmus als das WIM-Format (im Allgemeinen etwa 1,5-fach bessere Komprimierung).

Wenn alles, was Sie haben, eine ESD ist, Sie aber lieber eine WIM verwenden möchten, können Sie eine ESD mit dem DISM-Exportbefehl in WIM konvertieren. Sie können ein WIM auch in ESD konvertieren, indem Sie / compress: recovery within export or capture command angeben. Das Konvertieren von einem zu dem anderen ist ressourcenintensiv und deshalb 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 sind nur ~ 50% der Systemressourcen dem Export gewidmet, während die 90%, die normalerweise für den Export verwendet werden, verwendet werden.


0
2018-03-15 22:29





Ich ging einfach zu einem anderen Windows 10 Pro x 64-Rechner und kopierte die opencl.dll-Datei (aus dem gleichen Verzeichnis). Dann übernahm ich die Verantwortung für die schlechte opencl.dll, benannte sie in opencl.old um und kopierte sie in die neue. Reboot zurück in den abgesicherten Modus und führen Sie sfc / scannow und es kommt wieder gut. In meinem Fall war dies die einzige schlechte Datei, die in cbs.log aufgelistet ist ... Ich kann sehen, wo es besser ist, wenn sfc funktioniert, wenn Sie viele beschädigte Dateien haben und nicht jeden einzeln patchen wollen. Aber wenn dein Problem nur die eine DLL ist, dann scheint eine einfache Kopie zu funktionieren.


0
2017-08-22 16:44





Es scheint, dass das Installations-Image (install.esd) vom Installationsmedium des Creator's Update ist mit der hier beschriebenen DISM-Methode nicht kompatibel. Sie erhalten einen Fehler 0x800f081f egal, welche Art von Befehl Sie eingeben. Es hilft auch nicht, das richtige zu extrahieren install.wim aus der ESD-Datei. 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 persistierende Fehler hat nichts mit dem Befehl dism oder den WIM-Dateien zu tun. Dies liegt an einem Paket namens 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 Referenzen in der Registrierung, die gelöscht werden müssen. Weitere Informationen finden Sie im verknüpften Sysnative-Thread.


0
2018-04-20 17:28